home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / CIncludes / Movies.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-12  |  107.3 KB  |  3,228 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Movies.h
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1990-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __MOVIES__
  19. #define __MOVIES__
  20.  
  21. #ifndef __QUICKDRAW__
  22. #include <Quickdraw.h>
  23. #endif
  24. #ifndef __ALIASES__
  25. #include <Aliases.h>
  26. #endif
  27. #ifndef __EVENTS__
  28. #include <Events.h>
  29. #endif
  30. #ifndef __MENUS__
  31. #include <Menus.h>
  32. #endif
  33. #ifndef __COMPONENTS__
  34. #include <Components.h>
  35. #endif
  36. #ifndef __IMAGECOMPRESSION__
  37. #include <ImageCompression.h>
  38. #endif
  39.  
  40.  
  41.  
  42. #if PRAGMA_ONCE
  43. #pragma once
  44. #endif
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. #if PRAGMA_IMPORT
  51. #pragma import on
  52. #endif
  53.  
  54. #if PRAGMA_STRUCT_ALIGN
  55.     #pragma options align=mac68k
  56. #elif PRAGMA_STRUCT_PACKPUSH
  57.     #pragma pack(push, 2)
  58. #elif PRAGMA_STRUCT_PACK
  59.     #pragma pack(2)
  60. #endif
  61.  
  62.  
  63. /*  "kFix1" is defined in FixMath as "fixed1"  */
  64. /* error codes are in Errors.[haa] */
  65. /* gestalt codes are in Gestalt.[hpa] */
  66.  
  67. enum {
  68.     MovieFileType                = FOUR_CHAR_CODE('MooV')
  69. };
  70.  
  71.  
  72. enum {
  73.     MediaHandlerType            = FOUR_CHAR_CODE('mhlr'),
  74.     DataHandlerType                = FOUR_CHAR_CODE('dhlr')
  75. };
  76.  
  77.  
  78. enum {
  79.     VideoMediaType                = FOUR_CHAR_CODE('vide'),
  80.     SoundMediaType                = FOUR_CHAR_CODE('soun'),
  81.     TextMediaType                = FOUR_CHAR_CODE('text'),
  82.     BaseMediaType                = FOUR_CHAR_CODE('gnrc'),
  83.     MPEGMediaType                = FOUR_CHAR_CODE('MPEG'),
  84.     MusicMediaType                = FOUR_CHAR_CODE('musi'),
  85.     TimeCodeMediaType            = FOUR_CHAR_CODE('tmcd'),
  86.     SpriteMediaType                = FOUR_CHAR_CODE('sprt'),
  87.     TweenMediaType                = FOUR_CHAR_CODE('twen'),
  88.     ThreeDeeMediaType            = FOUR_CHAR_CODE('qd3d'),
  89.     HandleDataHandlerSubType    = FOUR_CHAR_CODE('hndl'),
  90.     ResourceDataHandlerSubType    = FOUR_CHAR_CODE('rsrc')
  91. };
  92.  
  93.  
  94. enum {
  95.     VisualMediaCharacteristic    = FOUR_CHAR_CODE('eyes'),
  96.     AudioMediaCharacteristic    = FOUR_CHAR_CODE('ears'),
  97.     kCharacteristicCanSendVideo    = FOUR_CHAR_CODE('vsnd')
  98. };
  99.  
  100.  
  101. enum {
  102.     DoTheRightThing                = 0
  103. };
  104.  
  105.  
  106. struct MovieRecord {
  107.     long                             data[1];
  108. };
  109. typedef struct MovieRecord MovieRecord;
  110.  
  111. typedef MovieRecord *                    Movie;
  112. struct TrackRecord {
  113.     long                             data[1];
  114. };
  115. typedef struct TrackRecord TrackRecord;
  116.  
  117. typedef TrackRecord *                    Track;
  118. struct MediaRecord {
  119.     long                             data[1];
  120. };
  121. typedef struct MediaRecord MediaRecord;
  122.  
  123. typedef MediaRecord *                    Media;
  124. struct UserDataRecord {
  125.     long                             data[1];
  126. };
  127. typedef struct UserDataRecord UserDataRecord;
  128.  
  129. typedef UserDataRecord *                UserData;
  130. struct TrackEditStateRecord {
  131.     long                             data[1];
  132. };
  133. typedef struct TrackEditStateRecord TrackEditStateRecord;
  134.  
  135. typedef TrackEditStateRecord *            TrackEditState;
  136. struct MovieEditStateRecord {
  137.     long                             data[1];
  138. };
  139. typedef struct MovieEditStateRecord MovieEditStateRecord;
  140.  
  141. typedef MovieEditStateRecord *            MovieEditState;
  142. struct SpriteWorldRecord {
  143.     long                             data[1];
  144. };
  145. typedef struct SpriteWorldRecord SpriteWorldRecord;
  146.  
  147. typedef SpriteWorldRecord *                SpriteWorld;
  148. struct SpriteRecord {
  149.     long                             data[1];
  150. };
  151. typedef struct SpriteRecord SpriteRecord;
  152.  
  153. typedef SpriteRecord *                    Sprite;
  154. struct SampleDescription {
  155.     long                             descSize;
  156.     long                             dataFormat;
  157.     long                             resvd1;
  158.     short                             resvd2;
  159.     short                             dataRefIndex;
  160. };
  161. typedef struct SampleDescription SampleDescription;
  162.  
  163. typedef SampleDescription *                SampleDescriptionPtr;
  164. typedef SampleDescriptionPtr *            SampleDescriptionHandle;
  165. typedef Handle                             QTAtomContainer;
  166. typedef long                             QTAtom;
  167. typedef long                             QTAtomType;
  168. typedef long                             QTAtomID;
  169.  
  170.  
  171. struct SoundDescription {
  172.     long                             descSize;                    /* total size of SoundDescription including extra data */
  173.     long                             dataFormat;                    /*  */
  174.     long                             resvd1;                        /* reserved for apple use */
  175.     short                             resvd2;
  176.     short                             dataRefIndex;
  177.     short                             version;                    /* which version is this data */
  178.     short                             revlevel;                    /* what version of that codec did this */
  179.     long                             vendor;                        /* whose  codec compressed this data */
  180.     short                             numChannels;                /* number of channels of sound */
  181.     short                             sampleSize;                    /* number of bits per sample */
  182.     short                             compressionID;                /* sound compression used, 0 if none */
  183.     short                             packetSize;                    /* packet size for compression, 0 if no compression */
  184.     Fixed                             sampleRate;                    /* sample rate sound is captured at */
  185. };
  186. typedef struct SoundDescription SoundDescription;
  187.  
  188. typedef SoundDescription *                SoundDescriptionPtr;
  189. typedef SoundDescriptionPtr *            SoundDescriptionHandle;
  190. struct TextDescription {
  191.     long                             descSize;                    /* Total size of TextDescription*/
  192.     long                             dataFormat;                    /* 'text'*/
  193.  
  194.     long                             resvd1;
  195.     short                             resvd2;
  196.     short                             dataRefIndex;
  197.  
  198.     long                             displayFlags;                /* see enum below for flag values*/
  199.  
  200.     long                             textJustification;            /* Can be: teCenter,teFlush -Default,-Right,-Left*/
  201.  
  202.     RGBColor                         bgColor;                    /* Background color*/
  203.  
  204.     Rect                             defaultTextBox;                /* Location to place the text within the track bounds*/
  205.     ScrpSTElement                     defaultStyle;                /* Default style (struct defined in TextEdit.h)*/
  206.     char                             defaultFontName[1];            /* Font Name (pascal string - struct extended to fit) */
  207. };
  208. typedef struct TextDescription TextDescription;
  209.  
  210. typedef TextDescription *                TextDescriptionPtr;
  211. typedef TextDescriptionPtr *            TextDescriptionHandle;
  212. struct ThreeDeeDescription {
  213.     long                             descSize;                    /* total size of ThreeDeeDescription including extra data */
  214.     long                             dataFormat;                    /*  */
  215.     long                             resvd1;                        /* reserved for apple use */
  216.     short                             resvd2;
  217.     short                             dataRefIndex;
  218.     long                             version;                    /* which version is this data */
  219.     long                             rendererType;                /* which renderer to use, 0 for default */
  220. };
  221. typedef struct ThreeDeeDescription ThreeDeeDescription;
  222.  
  223. typedef ThreeDeeDescription *            ThreeDeeDescriptionPtr;
  224. typedef ThreeDeeDescriptionPtr *        ThreeDeeDescriptionHandle;
  225. struct DataReferenceRecord {
  226.     OSType                             dataRefType;
  227.     Handle                             dataRef;
  228. };
  229. typedef struct DataReferenceRecord DataReferenceRecord;
  230.  
  231. typedef DataReferenceRecord *            DataReferencePtr;
  232. /*--------------------------
  233.   Music Sample Description
  234. --------------------------*/
  235. struct MusicDescription {
  236.     long                             descSize;
  237.     long                             dataFormat;                    /* 'musi' */
  238.  
  239.     long                             resvd1;
  240.     short                             resvd2;
  241.     short                             dataRefIndex;
  242.  
  243.     long                             musicFlags;
  244.     unsigned long                     headerData[1];                /* variable size! */
  245.  
  246. };
  247. typedef struct MusicDescription MusicDescription;
  248.  
  249. typedef MusicDescription *                MusicDescriptionPtr;
  250. typedef MusicDescriptionPtr *            MusicDescriptionHandle;
  251.  
  252. enum {
  253.     kMusicFlagDontPlay2Soft        = 1L << 0
  254. };
  255.  
  256.  
  257.  
  258. enum {
  259.     dfDontDisplay                = 1 << 0,                        /* Don't display the text*/
  260.     dfDontAutoScale                = 1 << 1,                        /* Don't scale text as track bounds grows or shrinks*/
  261.     dfClipToTextBox                = 1 << 2,                        /* Clip update to the textbox*/
  262.     dfUseMovieBGColor            = 1 << 3,                        /* Set text background to movie's background color*/
  263.     dfShrinkTextBoxToFit        = 1 << 4,                        /* Compute minimum box to fit the sample*/
  264.     dfScrollIn                    = 1 << 5,                        /* Scroll text in until last of text is in view */
  265.     dfScrollOut                    = 1 << 6,                        /* Scroll text out until last of text is gone (if both set, scroll in then out)*/
  266.     dfHorizScroll                = 1 << 7,                        /* Scroll text horizontally (otherwise it's vertical)*/
  267.     dfReverseScroll                = 1 << 8,                        /* vert: scroll down rather than up; horiz: scroll backwards (justfication dependent)*/
  268.     dfContinuousScroll            = 1 << 9,                        /* new samples cause previous samples to scroll out */
  269.     dfFlowHoriz                    = 1 << 10,                        /* horiz scroll text flows in textbox rather than extend to right */
  270.     dfContinuousKaraoke            = 1 << 11,                        /* ignore begin offset, hilite everything up to the end offset(karaoke)*/
  271.     dfDropShadow                = 1 << 12,                        /* display text with a drop shadow */
  272.     dfAntiAlias                    = 1 << 13,                        /* attempt to display text anti aliased*/
  273.     dfKeyedText                    = 1 << 14,                        /* key the text over background*/
  274.     dfInverseHilite                = 1 << 15,                        /* Use inverse hiliting rather than using hilite color*/
  275.     dfTextColorHilite            = 1 << 16                        /* changes text color in place of hiliting. */
  276. };
  277.  
  278.  
  279. enum {
  280.     searchTextDontGoToFoundTime    = 1L << 16,
  281.     searchTextDontHiliteFoundText = 1L << 17,
  282.     searchTextOneTrackOnly        = 1L << 18,
  283.     searchTextEnabledTracksOnly    = 1L << 19
  284. };
  285.  
  286.  
  287. enum {
  288.     k3DMediaRendererEntry        = FOUR_CHAR_CODE('rend'),
  289.     k3DMediaRendererName        = FOUR_CHAR_CODE('name'),
  290.     k3DMediaRendererCode        = FOUR_CHAR_CODE('rcod')
  291. };
  292.  
  293. /* progress messages */
  294.  
  295. enum {
  296.     movieProgressOpen            = 0,
  297.     movieProgressUpdatePercent    = 1,
  298.     movieProgressClose            = 2
  299. };
  300.  
  301. /* progress operations */
  302.  
  303. enum {
  304.     progressOpFlatten            = 1,
  305.     progressOpInsertTrackSegment = 2,
  306.     progressOpInsertMovieSegment = 3,
  307.     progressOpPaste                = 4,
  308.     progressOpAddMovieSelection    = 5,
  309.     progressOpCopy                = 6,
  310.     progressOpCut                = 7,
  311.     progressOpLoadMovieIntoRam    = 8,
  312.     progressOpLoadTrackIntoRam    = 9,
  313.     progressOpLoadMediaIntoRam    = 10,
  314.     progressOpImportMovie        = 11,
  315.     progressOpExportMovie        = 12
  316. };
  317.  
  318.  
  319. enum {
  320.     mediaQualityDraft            = 0x0000,
  321.     mediaQualityNormal            = 0x0040,
  322.     mediaQualityBetter            = 0x0080,
  323.     mediaQualityBest            = 0x00C0
  324. };
  325.  
  326. typedef CALLBACK_API( OSErr , MovieRgnCoverProcPtr )(Movie theMovie, RgnHandle changedRgn, long refcon);
  327. typedef CALLBACK_API( OSErr , MovieProgressProcPtr )(Movie theMovie, short message, short whatOperation, Fixed percentDone, long refcon);
  328. typedef CALLBACK_API( OSErr , MovieDrawingCompleteProcPtr )(Movie theMovie, long refCon);
  329. typedef CALLBACK_API( OSErr , TrackTransferProcPtr )(Track t, long refCon);
  330. typedef CALLBACK_API( OSErr , GetMovieProcPtr )(long offset, long size, void *dataPtr, void *refCon);
  331. typedef CALLBACK_API( Boolean , MoviePreviewCallOutProcPtr )(long refcon);
  332. typedef CALLBACK_API( OSErr , TextMediaProcPtr )(Handle theText, Movie theMovie, short *displayFlag, long refcon);
  333. typedef CALLBACK_API( void , MoviesErrorProcPtr )(OSErr theErr, long refcon);
  334. typedef STACK_UPP_TYPE(MoviesErrorProcPtr)                         MoviesErrorUPP;
  335. enum { uppMoviesErrorProcInfo = 0x00000380 };                     /* pascal no_return_value Func(2_bytes, 4_bytes) */
  336. #define NewMoviesErrorProc(userRoutine)                         (MoviesErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentArchitecture())
  337. #define CallMoviesErrorProc(userRoutine, theErr, refcon)         CALL_TWO_PARAMETER_UPP((userRoutine), uppMoviesErrorProcInfo, (theErr), (refcon))
  338. typedef STACK_UPP_TYPE(MovieRgnCoverProcPtr)                     MovieRgnCoverUPP;
  339. typedef STACK_UPP_TYPE(MovieProgressProcPtr)                     MovieProgressUPP;
  340. typedef STACK_UPP_TYPE(MovieDrawingCompleteProcPtr)             MovieDrawingCompleteUPP;
  341. typedef STACK_UPP_TYPE(TrackTransferProcPtr)                     TrackTransferUPP;
  342. typedef STACK_UPP_TYPE(GetMovieProcPtr)                         GetMovieUPP;
  343. typedef STACK_UPP_TYPE(MoviePreviewCallOutProcPtr)                 MoviePreviewCallOutUPP;
  344. typedef STACK_UPP_TYPE(TextMediaProcPtr)                         TextMediaUPP;
  345. typedef ComponentInstance                 MediaHandler;
  346. typedef ComponentInstance                 DataHandler;
  347. typedef Component                         MediaHandlerComponent;
  348. typedef Component                         DataHandlerComponent;
  349. typedef ComponentResult                 HandlerError;
  350. /* TimeBase equates */
  351. typedef long                             TimeValue;
  352. typedef long                             TimeScale;
  353. typedef wide                             CompTimeValue;
  354.  
  355. enum {
  356.     loopTimeBase                = 1,
  357.     palindromeLoopTimeBase        = 2,
  358.     maintainTimeBaseZero        = 4
  359. };
  360.  
  361. typedef unsigned long                     TimeBaseFlags;
  362. struct TimeBaseRecord {
  363.     long                             data[1];
  364. };
  365. typedef struct TimeBaseRecord TimeBaseRecord;
  366.  
  367. typedef TimeBaseRecord *                TimeBase;
  368. struct CallBackRecord {
  369.     long                             data[1];
  370. };
  371. typedef struct CallBackRecord CallBackRecord;
  372.  
  373. typedef CallBackRecord *                QTCallBack;
  374. struct TimeRecord {
  375.     CompTimeValue                     value;                        /* units */
  376.     TimeScale                         scale;                        /* units per second */
  377.     TimeBase                         base;
  378. };
  379. typedef struct TimeRecord TimeRecord;
  380.  
  381. /* CallBack equates */
  382.  
  383. enum {
  384.     triggerTimeFwd                = 0x0001,                        /* when curTime exceeds triggerTime going forward */
  385.     triggerTimeBwd                = 0x0002,                        /* when curTime exceeds triggerTime going backwards */
  386.     triggerTimeEither            = 0x0003,                        /* when curTime exceeds triggerTime going either direction */
  387.     triggerRateLT                = 0x0004,                        /* when rate changes to less than trigger value */
  388.     triggerRateGT                = 0x0008,                        /* when rate changes to greater than trigger value */
  389.     triggerRateEqual            = 0x0010,                        /* when rate changes to equal trigger value */
  390.     triggerRateLTE                = triggerRateLT | triggerRateEqual,
  391.     triggerRateGTE                = triggerRateGT | triggerRateEqual,
  392.     triggerRateNotEqual            = triggerRateGT | triggerRateEqual | triggerRateLT,
  393.     triggerRateChange            = 0,
  394.     triggerAtStart                = 0x0001,
  395.     triggerAtStop                = 0x0002
  396. };
  397.  
  398. typedef unsigned short                     QTCallBackFlags;
  399.  
  400. enum {
  401.     timeBaseBeforeStartTime        = 1,
  402.     timeBaseAfterStopTime        = 2
  403. };
  404.  
  405. typedef unsigned long                     TimeBaseStatus;
  406.  
  407. enum {
  408.     callBackAtTime                = 1,
  409.     callBackAtRate                = 2,
  410.     callBackAtTimeJump            = 3,
  411.     callBackAtExtremes            = 4,
  412.     callBackAtInterrupt            = 0x8000,
  413.     callBackAtDeferredTask        = 0x4000
  414. };
  415.  
  416. typedef unsigned short                     QTCallBackType;
  417. typedef CALLBACK_API( void , QTCallBackProcPtr )(QTCallBack cb, long refCon);
  418. typedef STACK_UPP_TYPE(QTCallBackProcPtr)                         QTCallBackUPP;
  419.  
  420. enum {
  421.     qtcbNeedsRateChanges        = 1,                            /* wants to know about rate changes */
  422.     qtcbNeedsTimeChanges        = 2,                            /* wants to know about time changes */
  423.     qtcbNeedsStartStopChanges    = 4                                /* wants to know when TimeBase start/stop is changed*/
  424. };
  425.  
  426. struct QTCallBackHeader {
  427.     long                             callBackFlags;
  428.     long                             reserved1;
  429.     SInt8                             qtPrivate[40];
  430. };
  431. typedef struct QTCallBackHeader QTCallBackHeader;
  432.  
  433. typedef CALLBACK_API( void , QTSyncTaskProcPtr )(void *task);
  434. typedef STACK_UPP_TYPE(QTSyncTaskProcPtr)                         QTSyncTaskUPP;
  435. struct QTSyncTaskRecord {
  436.     void *                            qLink;
  437.     QTSyncTaskUPP                     proc;
  438. };
  439. typedef struct QTSyncTaskRecord QTSyncTaskRecord;
  440.  
  441. typedef QTSyncTaskRecord *                QTSyncTaskPtr;
  442.  
  443. enum {
  444.     keepInRam                    = 1 << 0,                        /* load and make non-purgable*/
  445.     unkeepInRam                    = 1 << 1,                        /* mark as purgable*/
  446.     flushFromRam                = 1 << 2,                        /* empty those handles*/
  447.     loadForwardTrackEdits        = 1 << 3,                        /*    load track edits into ram for playing forward*/
  448.     loadBackwardTrackEdits        = 1 << 4                        /*    load track edits into ram for playing in reverse*/
  449. };
  450.  
  451.  
  452. enum {
  453.     newMovieActive                = 1 << 0,
  454.     newMovieDontResolveDataRefs    = 1 << 1,
  455.     newMovieDontAskUnresolvedDataRefs = 1 << 2,
  456.     newMovieDontAutoAlternates    = 1 << 3,
  457.     newMovieDontUpdateForeBackPointers = 1 << 4
  458. };
  459.  
  460. /* track usage bits */
  461.  
  462. enum {
  463.     trackUsageInMovie            = 1 << 1,
  464.     trackUsageInPreview            = 1 << 2,
  465.     trackUsageInPoster            = 1 << 3
  466. };
  467.  
  468. /* Add/GetMediaSample flags */
  469.  
  470. enum {
  471.     mediaSampleNotSync            = 1 << 0,                        /* sample is not a sync sample (eg. is frame differenced */
  472.     mediaSampleShadowSync        = 1 << 1                        /* sample is a shadow sync */
  473. };
  474.  
  475.  
  476. enum {
  477.     pasteInParallel                = 1 << 0,
  478.     showUserSettingsDialog        = 1 << 1,
  479.     movieToFileOnlyExport        = 1 << 2,
  480.     movieFileSpecValid            = 1 << 3
  481. };
  482.  
  483.  
  484. enum {
  485.     nextTimeMediaSample            = 1 << 0,
  486.     nextTimeMediaEdit            = 1 << 1,
  487.     nextTimeTrackEdit            = 1 << 2,
  488.     nextTimeSyncSample            = 1 << 3,
  489.     nextTimeStep                = 1 << 4,
  490.     nextTimeEdgeOK                = 1 << 14,
  491.     nextTimeIgnoreActiveSegment    = 1 << 15
  492. };
  493.  
  494. typedef unsigned short                     nextTimeFlagsEnum;
  495.  
  496. enum {
  497.     createMovieFileDeleteCurFile = 1L << 31,
  498.     createMovieFileDontCreateMovie = 1L << 30,
  499.     createMovieFileDontOpenFile    = 1L << 29
  500. };
  501.  
  502. typedef unsigned long                     createMovieFileFlagsEnum;
  503.  
  504. enum {
  505.     flattenAddMovieToDataFork    = 1L << 0,
  506.     flattenActiveTracksOnly        = 1L << 2,
  507.     flattenDontInterleaveFlatten = 1L << 3,
  508.     flattenFSSpecPtrIsDataRefRecordPtr = 1L << 4
  509. };
  510.  
  511. typedef unsigned long                     movieFlattenFlagsEnum;
  512.  
  513. enum {
  514.     movieInDataForkResID        = -1                            /* magic res ID */
  515. };
  516.  
  517.  
  518. enum {
  519.     mcTopLeftMovie                = 1 << 0,                        /* usually centered */
  520.     mcScaleMovieToFit            = 1 << 1,                        /* usually only scales down */
  521.     mcWithBadge                    = 1 << 2,                        /* give me a badge */
  522.     mcNotVisible                = 1 << 3,                        /* don't show controller */
  523.     mcWithFrame                    = 1 << 4                        /* gimme a frame */
  524. };
  525.  
  526.  
  527. enum {
  528.     movieScrapDontZeroScrap        = 1 << 0,
  529.     movieScrapOnlyPutMovie        = 1 << 1
  530. };
  531.  
  532.  
  533. enum {
  534.     dataRefSelfReference        = 1 << 0,
  535.     dataRefWasNotResolved        = 1 << 1
  536. };
  537.  
  538. typedef unsigned long                     dataRefAttributesFlags;
  539.  
  540. enum {
  541.     hintsScrubMode                = 1 << 0,                        /* mask == && (if flags == scrub on, flags != scrub off) */
  542.     hintsLoop                    = 1 << 1,
  543.     hintsDontPurge                = 1 << 2,
  544.     hintsUseScreenBuffer        = 1 << 5,
  545.     hintsAllowInterlace            = 1 << 6,
  546.     hintsUseSoundInterp            = 1 << 7,
  547.     hintsHighQuality            = 1 << 8,                        /* slooooow */
  548.     hintsPalindrome                = 1 << 9,
  549.     hintsInactive                = 1 << 11
  550. };
  551.  
  552. typedef unsigned long                     playHintsEnum;
  553.  
  554. enum {
  555.     mediaHandlerFlagBaseClient    = 1
  556. };
  557.  
  558. typedef unsigned long                     mediaHandlerFlagsEnum;
  559.  
  560. enum {
  561.     movieTrackMediaType            = 1 << 0,
  562.     movieTrackCharacteristic    = 1 << 1,
  563.     movieTrackEnabledOnly        = 1 << 2
  564. };
  565.  
  566. struct SampleReferenceRecord {
  567.     long                             dataOffset;
  568.     long                             dataSize;
  569.     TimeValue                         durationPerSample;
  570.     long                             numberOfSamples;
  571.     short                             sampleFlags;
  572. };
  573. typedef struct SampleReferenceRecord SampleReferenceRecord;
  574.  
  575. typedef SampleReferenceRecord *            SampleReferencePtr;
  576.  
  577. /*************************
  578. * Initialization Routines 
  579. **************************/
  580. EXTERN_API( OSErr )
  581. EnterMovies                        (void)                                                        TWOWORDINLINE(0x7001, 0xAAAA);
  582.  
  583. EXTERN_API( void )
  584. ExitMovies                        (void)                                                        TWOWORDINLINE(0x7002, 0xAAAA);
  585.  
  586. /*************************
  587. * Error Routines 
  588. **************************/
  589.  
  590. EXTERN_API( OSErr )
  591. GetMoviesError                    (void)                                                        TWOWORDINLINE(0x7003, 0xAAAA);
  592.  
  593. EXTERN_API( void )
  594. ClearMoviesStickyError            (void)                                                        THREEWORDINLINE(0x303C, 0x00DE, 0xAAAA);
  595.  
  596. EXTERN_API( OSErr )
  597. GetMoviesStickyError            (void)                                                        TWOWORDINLINE(0x7004, 0xAAAA);
  598.  
  599. EXTERN_API( void )
  600. SetMoviesErrorProc                (MoviesErrorUPP         errProc,
  601.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x00EF, 0xAAAA);
  602.  
  603. /*************************
  604. * Idle Routines 
  605. **************************/
  606. EXTERN_API( void )
  607. MoviesTask                        (Movie                     theMovie,
  608.                                  long                     maxMilliSecToUse)                    TWOWORDINLINE(0x7005, 0xAAAA);
  609.  
  610. EXTERN_API( OSErr )
  611. PrerollMovie                    (Movie                     theMovie,
  612.                                  TimeValue                 time,
  613.                                  Fixed                     Rate)                                TWOWORDINLINE(0x7006, 0xAAAA);
  614.  
  615. EXTERN_API( OSErr )
  616. LoadMovieIntoRam                (Movie                     theMovie,
  617.                                  TimeValue                 time,
  618.                                  TimeValue                 duration,
  619.                                  long                     flags)                                TWOWORDINLINE(0x7007, 0xAAAA);
  620.  
  621. EXTERN_API( OSErr )
  622. LoadTrackIntoRam                (Track                     theTrack,
  623.                                  TimeValue                 time,
  624.                                  TimeValue                 duration,
  625.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x016E, 0xAAAA);
  626.  
  627. EXTERN_API( OSErr )
  628. LoadMediaIntoRam                (Media                     theMedia,
  629.                                  TimeValue                 time,
  630.                                  TimeValue                 duration,
  631.                                  long                     flags)                                TWOWORDINLINE(0x7008, 0xAAAA);
  632.  
  633. EXTERN_API( void )
  634. SetMovieActive                    (Movie                     theMovie,
  635.                                  Boolean                 active)                                TWOWORDINLINE(0x7009, 0xAAAA);
  636.  
  637. EXTERN_API( Boolean )
  638. GetMovieActive                    (Movie                     theMovie)                            TWOWORDINLINE(0x700A, 0xAAAA);
  639.  
  640. /*************************
  641. * calls for playing movies, previews, posters
  642. **************************/
  643. EXTERN_API( void )
  644. StartMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x700B, 0xAAAA);
  645.  
  646. EXTERN_API( void )
  647. StopMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x700C, 0xAAAA);
  648.  
  649. EXTERN_API( void )
  650. GoToBeginningOfMovie            (Movie                     theMovie)                            TWOWORDINLINE(0x700D, 0xAAAA);
  651.  
  652. EXTERN_API( void )
  653. GoToEndOfMovie                    (Movie                     theMovie)                            TWOWORDINLINE(0x700E, 0xAAAA);
  654.  
  655. EXTERN_API( Boolean )
  656. IsMovieDone                        (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00DD, 0xAAAA);
  657.  
  658. EXTERN_API( Boolean )
  659. GetMoviePreviewMode                (Movie                     theMovie)                            TWOWORDINLINE(0x700F, 0xAAAA);
  660.  
  661. EXTERN_API( void )
  662. SetMoviePreviewMode                (Movie                     theMovie,
  663.                                  Boolean                 usePreview)                            TWOWORDINLINE(0x7010, 0xAAAA);
  664.  
  665. EXTERN_API( void )
  666. ShowMoviePoster                    (Movie                     theMovie)                            TWOWORDINLINE(0x7011, 0xAAAA);
  667.  
  668. EXTERN_API( void )
  669. PlayMoviePreview                (Movie                     theMovie,
  670.                                  MoviePreviewCallOutUPP  callOutProc,
  671.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x00F2, 0xAAAA);
  672.  
  673. /*************************
  674. * calls for controlling movies & tracks which are playing
  675. **************************/
  676. EXTERN_API( TimeBase )
  677. GetMovieTimeBase                (Movie                     theMovie)                            TWOWORDINLINE(0x7012, 0xAAAA);
  678.  
  679. EXTERN_API( void )
  680. SetMovieMasterTimeBase            (Movie                     theMovie,
  681.                                  TimeBase                 tb,
  682.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x0167, 0xAAAA);
  683.  
  684. EXTERN_API( void )
  685. SetMovieMasterClock                (Movie                     theMovie,
  686.                                  Component                 clockMeister,
  687.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x0168, 0xAAAA);
  688.  
  689. EXTERN_API( void )
  690. GetMovieGWorld                    (Movie                     theMovie,
  691.                                  CGrafPtr *                port,
  692.                                  GDHandle *                gdh)                                TWOWORDINLINE(0x7015, 0xAAAA);
  693.  
  694. EXTERN_API( void )
  695. SetMovieGWorld                    (Movie                     theMovie,
  696.                                  CGrafPtr                 port,
  697.                                  GDHandle                 gdh)                                TWOWORDINLINE(0x7016, 0xAAAA);
  698.  
  699.  
  700. enum {
  701.     movieDrawingCallWhenChanged    = 0,
  702.     movieDrawingCallAlways        = 1
  703. };
  704.  
  705. EXTERN_API( void )
  706. SetMovieDrawingCompleteProc        (Movie                     theMovie,
  707.                                  long                     flags,
  708.                                  MovieDrawingCompleteUPP  proc,
  709.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x01DE, 0xAAAA);
  710.  
  711.  
  712. EXTERN_API( void )
  713. GetMovieNaturalBoundsRect        (Movie                     theMovie,
  714.                                  Rect *                    naturalBounds)                        THREEWORDINLINE(0x303C, 0x022C, 0xAAAA);
  715.  
  716. EXTERN_API( Track )
  717. GetNextTrackForCompositing        (Movie                     theMovie,
  718.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x01FA, 0xAAAA);
  719.  
  720. EXTERN_API( Track )
  721. GetPrevTrackForCompositing        (Movie                     theMovie,
  722.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x01FB, 0xAAAA);
  723.  
  724. EXTERN_API( OSErr )
  725. SetMovieCompositeBufferFlags    (Movie                     theMovie,
  726.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x027E, 0xAAAA);
  727.  
  728. EXTERN_API( OSErr )
  729. GetMovieCompositeBufferFlags    (Movie                     theMovie,
  730.                                  long *                    flags)                                THREEWORDINLINE(0x303C, 0x027F, 0xAAAA);
  731.  
  732. EXTERN_API( void )
  733. SetTrackGWorld                    (Track                     theTrack,
  734.                                  CGrafPtr                 port,
  735.                                  GDHandle                 gdh,
  736.                                  TrackTransferUPP         proc,
  737.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x009D, 0xAAAA);
  738.  
  739. EXTERN_API( PicHandle )
  740. GetMoviePict                    (Movie                     theMovie,
  741.                                  TimeValue                 time)                                TWOWORDINLINE(0x701D, 0xAAAA);
  742.  
  743. EXTERN_API( PicHandle )
  744. GetTrackPict                    (Track                     theTrack,
  745.                                  TimeValue                 time)                                TWOWORDINLINE(0x701E, 0xAAAA);
  746.  
  747. EXTERN_API( PicHandle )
  748. GetMoviePosterPict                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F7, 0xAAAA);
  749.  
  750. /* called between Begin & EndUpdate */
  751. EXTERN_API( OSErr )
  752. UpdateMovie                        (Movie                     theMovie)                            TWOWORDINLINE(0x701F, 0xAAAA);
  753.  
  754. EXTERN_API( OSErr )
  755. InvalidateMovieRegion            (Movie                     theMovie,
  756.                                  RgnHandle                 invalidRgn)                            THREEWORDINLINE(0x303C, 0x022A, 0xAAAA);
  757.  
  758. /**** spatial movie routines ****/
  759. EXTERN_API( void )
  760. GetMovieBox                        (Movie                     theMovie,
  761.                                  Rect *                    boxRect)                            THREEWORDINLINE(0x303C, 0x00F9, 0xAAAA);
  762.  
  763. EXTERN_API( void )
  764. SetMovieBox                        (Movie                     theMovie,
  765.                                  const Rect *            boxRect)                            THREEWORDINLINE(0x303C, 0x00FA, 0xAAAA);
  766.  
  767. /** movie display clip */
  768. EXTERN_API( RgnHandle )
  769. GetMovieDisplayClipRgn            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FC, 0xAAAA);
  770.  
  771. EXTERN_API( void )
  772. SetMovieDisplayClipRgn            (Movie                     theMovie,
  773.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x00FD, 0xAAAA);
  774.  
  775. /** movie src clip */
  776. EXTERN_API( RgnHandle )
  777. GetMovieClipRgn                    (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0100, 0xAAAA);
  778.  
  779. EXTERN_API( void )
  780. SetMovieClipRgn                    (Movie                     theMovie,
  781.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x0101, 0xAAAA);
  782.  
  783. /** track src clip */
  784. EXTERN_API( RgnHandle )
  785. GetTrackClipRgn                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0102, 0xAAAA);
  786.  
  787. EXTERN_API( void )
  788. SetTrackClipRgn                    (Track                     theTrack,
  789.                                  RgnHandle                 theClip)                            THREEWORDINLINE(0x303C, 0x0103, 0xAAAA);
  790.  
  791. /** bounds in display space (not clipped by display clip) */
  792. EXTERN_API( RgnHandle )
  793. GetMovieDisplayBoundsRgn        (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FB, 0xAAAA);
  794.  
  795. EXTERN_API( RgnHandle )
  796. GetTrackDisplayBoundsRgn        (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0112, 0xAAAA);
  797.  
  798. /** bounds in movie space */
  799. EXTERN_API( RgnHandle )
  800. GetMovieBoundsRgn                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00FE, 0xAAAA);
  801.  
  802. EXTERN_API( RgnHandle )
  803. GetTrackMovieBoundsRgn            (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x00FF, 0xAAAA);
  804.  
  805. /** bounds in track space */
  806. EXTERN_API( RgnHandle )
  807. GetTrackBoundsRgn                (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0111, 0xAAAA);
  808.  
  809. /** mattes - always in track space */
  810. EXTERN_API( PixMapHandle )
  811. GetTrackMatte                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0115, 0xAAAA);
  812.  
  813. EXTERN_API( void )
  814. SetTrackMatte                    (Track                     theTrack,
  815.                                  PixMapHandle             theMatte)                            THREEWORDINLINE(0x303C, 0x0116, 0xAAAA);
  816.  
  817. EXTERN_API( void )
  818. DisposeMatte                    (PixMapHandle             theMatte)                            THREEWORDINLINE(0x303C, 0x014A, 0xAAAA);
  819.  
  820. /*************************
  821. * calls for getting/saving movies
  822. **************************/
  823. EXTERN_API( Movie )
  824. NewMovie                        (long                     flags)                                THREEWORDINLINE(0x303C, 0x0187, 0xAAAA);
  825.  
  826. EXTERN_API( OSErr )
  827. PutMovieIntoHandle                (Movie                     theMovie,
  828.                                  Handle                 publicMovie)                        TWOWORDINLINE(0x7022, 0xAAAA);
  829.  
  830. EXTERN_API( OSErr )
  831. PutMovieIntoDataFork            (Movie                     theMovie,
  832.                                  short                     fRefNum,
  833.                                  long                     offset,
  834.                                  long                     maxSize)                            THREEWORDINLINE(0x303C, 0x01B4, 0xAAAA);
  835.  
  836. EXTERN_API( void )
  837. DisposeMovie                    (Movie                     theMovie)                            TWOWORDINLINE(0x7023, 0xAAAA);
  838.  
  839. /*************************
  840. * Movie State Routines
  841. **************************/
  842. EXTERN_API( unsigned long )
  843. GetMovieCreationTime            (Movie                     theMovie)                            TWOWORDINLINE(0x7026, 0xAAAA);
  844.  
  845. EXTERN_API( unsigned long )
  846. GetMovieModificationTime        (Movie                     theMovie)                            TWOWORDINLINE(0x7027, 0xAAAA);
  847.  
  848. EXTERN_API( TimeScale )
  849. GetMovieTimeScale                (Movie                     theMovie)                            TWOWORDINLINE(0x7029, 0xAAAA);
  850.  
  851. EXTERN_API( void )
  852. SetMovieTimeScale                (Movie                     theMovie,
  853.                                  TimeScale                 timeScale)                            TWOWORDINLINE(0x702A, 0xAAAA);
  854.  
  855. EXTERN_API( TimeValue )
  856. GetMovieDuration                (Movie                     theMovie)                            TWOWORDINLINE(0x702B, 0xAAAA);
  857.  
  858. EXTERN_API( Fixed )
  859. GetMovieRate                    (Movie                     theMovie)                            TWOWORDINLINE(0x702C, 0xAAAA);
  860.  
  861. EXTERN_API( void )
  862. SetMovieRate                    (Movie                     theMovie,
  863.                                  Fixed                     rate)                                TWOWORDINLINE(0x702D, 0xAAAA);
  864.  
  865. EXTERN_API( Fixed )
  866. GetMoviePreferredRate            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F3, 0xAAAA);
  867.  
  868. EXTERN_API( void )
  869. SetMoviePreferredRate            (Movie                     theMovie,
  870.                                  Fixed                     rate)                                THREEWORDINLINE(0x303C, 0x00F4, 0xAAAA);
  871.  
  872. EXTERN_API( short )
  873. GetMoviePreferredVolume            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00F5, 0xAAAA);
  874.  
  875. EXTERN_API( void )
  876. SetMoviePreferredVolume            (Movie                     theMovie,
  877.                                  short                     volume)                                THREEWORDINLINE(0x303C, 0x00F6, 0xAAAA);
  878.  
  879. EXTERN_API( short )
  880. GetMovieVolume                    (Movie                     theMovie)                            TWOWORDINLINE(0x702E, 0xAAAA);
  881.  
  882. EXTERN_API( void )
  883. SetMovieVolume                    (Movie                     theMovie,
  884.                                  short                     volume)                                TWOWORDINLINE(0x702F, 0xAAAA);
  885.  
  886. EXTERN_API( void )
  887. GetMovieMatrix                    (Movie                     theMovie,
  888.                                  MatrixRecord *            matrix)                                TWOWORDINLINE(0x7031, 0xAAAA);
  889.  
  890. EXTERN_API( void )
  891. SetMovieMatrix                    (Movie                     theMovie,
  892.                                  const MatrixRecord *    matrix)                                TWOWORDINLINE(0x7032, 0xAAAA);
  893.  
  894. EXTERN_API( void )
  895. GetMoviePreviewTime                (Movie                     theMovie,
  896.                                  TimeValue *            previewTime,
  897.                                  TimeValue *            previewDuration)                    TWOWORDINLINE(0x7033, 0xAAAA);
  898.  
  899. EXTERN_API( void )
  900. SetMoviePreviewTime                (Movie                     theMovie,
  901.                                  TimeValue                 previewTime,
  902.                                  TimeValue                 previewDuration)                    TWOWORDINLINE(0x7034, 0xAAAA);
  903.  
  904. EXTERN_API( TimeValue )
  905. GetMoviePosterTime                (Movie                     theMovie)                            TWOWORDINLINE(0x7035, 0xAAAA);
  906.  
  907. EXTERN_API( void )
  908. SetMoviePosterTime                (Movie                     theMovie,
  909.                                  TimeValue                 posterTime)                            TWOWORDINLINE(0x7036, 0xAAAA);
  910.  
  911. EXTERN_API( void )
  912. GetMovieSelection                (Movie                     theMovie,
  913.                                  TimeValue *            selectionTime,
  914.                                  TimeValue *            selectionDuration)                    TWOWORDINLINE(0x7037, 0xAAAA);
  915.  
  916. EXTERN_API( void )
  917. SetMovieSelection                (Movie                     theMovie,
  918.                                  TimeValue                 selectionTime,
  919.                                  TimeValue                 selectionDuration)                    TWOWORDINLINE(0x7038, 0xAAAA);
  920.  
  921. EXTERN_API( void )
  922. SetMovieActiveSegment            (Movie                     theMovie,
  923.                                  TimeValue                 startTime,
  924.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x015C, 0xAAAA);
  925.  
  926. EXTERN_API( void )
  927. GetMovieActiveSegment            (Movie                     theMovie,
  928.                                  TimeValue *            startTime,
  929.                                  TimeValue *            duration)                            THREEWORDINLINE(0x303C, 0x015D, 0xAAAA);
  930.  
  931. EXTERN_API( TimeValue )
  932. GetMovieTime                    (Movie                     theMovie,
  933.                                  TimeRecord *            currentTime)                        TWOWORDINLINE(0x7039, 0xAAAA);
  934.  
  935. EXTERN_API( void )
  936. SetMovieTime                    (Movie                     theMovie,
  937.                                  const TimeRecord *        newtime)                            TWOWORDINLINE(0x703C, 0xAAAA);
  938.  
  939. EXTERN_API( void )
  940. SetMovieTimeValue                (Movie                     theMovie,
  941.                                  TimeValue                 newtime)                            TWOWORDINLINE(0x703D, 0xAAAA);
  942.  
  943.  
  944. EXTERN_API( UserData )
  945. GetMovieUserData                (Movie                     theMovie)                            TWOWORDINLINE(0x703E, 0xAAAA);
  946.  
  947.  
  948. /*************************
  949. * Track/Media finding routines
  950. **************************/
  951. EXTERN_API( long )
  952. GetMovieTrackCount                (Movie                     theMovie)                            TWOWORDINLINE(0x703F, 0xAAAA);
  953.  
  954. EXTERN_API( Track )
  955. GetMovieTrack                    (Movie                     theMovie,
  956.                                  long                     trackID)                            TWOWORDINLINE(0x7040, 0xAAAA);
  957.  
  958. EXTERN_API( Track )
  959. GetMovieIndTrack                (Movie                     theMovie,
  960.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x0117, 0xAAAA);
  961.  
  962. EXTERN_API( Track )
  963. GetMovieIndTrackType            (Movie                     theMovie,
  964.                                  long                     index,
  965.                                  OSType                 trackType,
  966.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0208, 0xAAAA);
  967.  
  968. EXTERN_API( long )
  969. GetTrackID                        (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0127, 0xAAAA);
  970.  
  971. EXTERN_API( Movie )
  972. GetTrackMovie                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x00D0, 0xAAAA);
  973.  
  974. /*************************
  975. * Track creation routines
  976. **************************/
  977. EXTERN_API( Track )
  978. NewMovieTrack                    (Movie                     theMovie,
  979.                                  Fixed                     width,
  980.                                  Fixed                     height,
  981.                                  short                     trackVolume)                        THREEWORDINLINE(0x303C, 0x0188, 0xAAAA);
  982.  
  983. EXTERN_API( void )
  984. DisposeMovieTrack                (Track                     theTrack)                            TWOWORDINLINE(0x7042, 0xAAAA);
  985.  
  986. /*************************
  987. * Track State routines
  988. **************************/
  989. EXTERN_API( unsigned long )
  990. GetTrackCreationTime            (Track                     theTrack)                            TWOWORDINLINE(0x7043, 0xAAAA);
  991.  
  992. EXTERN_API( unsigned long )
  993. GetTrackModificationTime        (Track                     theTrack)                            TWOWORDINLINE(0x7044, 0xAAAA);
  994.  
  995.  
  996. EXTERN_API( Boolean )
  997. GetTrackEnabled                    (Track                     theTrack)                            TWOWORDINLINE(0x7045, 0xAAAA);
  998.  
  999. EXTERN_API( void )
  1000. SetTrackEnabled                    (Track                     theTrack,
  1001.                                  Boolean                 isEnabled)                            TWOWORDINLINE(0x7046, 0xAAAA);
  1002.  
  1003. EXTERN_API( long )
  1004. GetTrackUsage                    (Track                     theTrack)                            TWOWORDINLINE(0x7047, 0xAAAA);
  1005.  
  1006. EXTERN_API( void )
  1007. SetTrackUsage                    (Track                     theTrack,
  1008.                                  long                     usage)                                TWOWORDINLINE(0x7048, 0xAAAA);
  1009.  
  1010. EXTERN_API( TimeValue )
  1011. GetTrackDuration                (Track                     theTrack)                            TWOWORDINLINE(0x704B, 0xAAAA);
  1012.  
  1013. EXTERN_API( TimeValue )
  1014. GetTrackOffset                    (Track                     theTrack)                            TWOWORDINLINE(0x704C, 0xAAAA);
  1015.  
  1016. EXTERN_API( void )
  1017. SetTrackOffset                    (Track                     theTrack,
  1018.                                  TimeValue                 movieOffsetTime)                    TWOWORDINLINE(0x704D, 0xAAAA);
  1019.  
  1020. EXTERN_API( short )
  1021. GetTrackLayer                    (Track                     theTrack)                            TWOWORDINLINE(0x7050, 0xAAAA);
  1022.  
  1023. EXTERN_API( void )
  1024. SetTrackLayer                    (Track                     theTrack,
  1025.                                  short                     layer)                                TWOWORDINLINE(0x7051, 0xAAAA);
  1026.  
  1027. EXTERN_API( Track )
  1028. GetTrackAlternate                (Track                     theTrack)                            TWOWORDINLINE(0x7052, 0xAAAA);
  1029.  
  1030. EXTERN_API( void )
  1031. SetTrackAlternate                (Track                     theTrack,
  1032.                                  Track                     alternateT)                            TWOWORDINLINE(0x7053, 0xAAAA);
  1033.  
  1034. EXTERN_API( void )
  1035. SetAutoTrackAlternatesEnabled    (Movie                     theMovie,
  1036.                                  Boolean                 enable)                                THREEWORDINLINE(0x303C, 0x015E, 0xAAAA);
  1037.  
  1038. EXTERN_API( void )
  1039. SelectMovieAlternates            (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x015F, 0xAAAA);
  1040.  
  1041. EXTERN_API( short )
  1042. GetTrackVolume                    (Track                     theTrack)                            TWOWORDINLINE(0x7054, 0xAAAA);
  1043.  
  1044. EXTERN_API( void )
  1045. SetTrackVolume                    (Track                     theTrack,
  1046.                                  short                     volume)                                TWOWORDINLINE(0x7055, 0xAAAA);
  1047.  
  1048. EXTERN_API( void )
  1049. GetTrackMatrix                    (Track                     theTrack,
  1050.                                  MatrixRecord *            matrix)                                TWOWORDINLINE(0x7056, 0xAAAA);
  1051.  
  1052. EXTERN_API( void )
  1053. SetTrackMatrix                    (Track                     theTrack,
  1054.                                  const MatrixRecord *    matrix)                                TWOWORDINLINE(0x7057, 0xAAAA);
  1055.  
  1056. EXTERN_API( void )
  1057. GetTrackDimensions                (Track                     theTrack,
  1058.                                  Fixed *                width,
  1059.                                  Fixed *                height)                                TWOWORDINLINE(0x705D, 0xAAAA);
  1060.  
  1061. EXTERN_API( void )
  1062. SetTrackDimensions                (Track                     theTrack,
  1063.                                  Fixed                     width,
  1064.                                  Fixed                     height)                                TWOWORDINLINE(0x705E, 0xAAAA);
  1065.  
  1066. EXTERN_API( UserData )
  1067. GetTrackUserData                (Track                     theTrack)                            TWOWORDINLINE(0x705F, 0xAAAA);
  1068.  
  1069. EXTERN_API( OSErr )
  1070. GetTrackDisplayMatrix            (Track                     theTrack,
  1071.                                  MatrixRecord *            matrix)                                THREEWORDINLINE(0x303C, 0x0263, 0xAAAA);
  1072.  
  1073. EXTERN_API( OSErr )
  1074. GetTrackSoundLocalizationSettings (Track                 theTrack,
  1075.                                  Handle *                settings)                            THREEWORDINLINE(0x303C, 0x0282, 0xAAAA);
  1076.  
  1077. EXTERN_API( OSErr )
  1078. SetTrackSoundLocalizationSettings (Track                 theTrack,
  1079.                                  Handle                 settings)                            THREEWORDINLINE(0x303C, 0x0283, 0xAAAA);
  1080.  
  1081. /*************************
  1082. * get Media routines
  1083. **************************/
  1084. EXTERN_API( Media )
  1085. NewTrackMedia                    (Track                     theTrack,
  1086.                                  OSType                 mediaType,
  1087.                                  TimeScale                 timeScale,
  1088.                                  Handle                 dataRef,
  1089.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x018E, 0xAAAA);
  1090.  
  1091. EXTERN_API( void )
  1092. DisposeTrackMedia                (Media                     theMedia)                            TWOWORDINLINE(0x7061, 0xAAAA);
  1093.  
  1094. EXTERN_API( Media )
  1095. GetTrackMedia                    (Track                     theTrack)                            TWOWORDINLINE(0x7062, 0xAAAA);
  1096.  
  1097. EXTERN_API( Track )
  1098. GetMediaTrack                    (Media                     theMedia)                            THREEWORDINLINE(0x303C, 0x00C5, 0xAAAA);
  1099.  
  1100.  
  1101.  
  1102. /*************************
  1103. * Media State routines
  1104. **************************/
  1105. EXTERN_API( unsigned long )
  1106. GetMediaCreationTime            (Media                     theMedia)                            TWOWORDINLINE(0x7066, 0xAAAA);
  1107.  
  1108. EXTERN_API( unsigned long )
  1109. GetMediaModificationTime        (Media                     theMedia)                            TWOWORDINLINE(0x7067, 0xAAAA);
  1110.  
  1111. EXTERN_API( TimeScale )
  1112. GetMediaTimeScale                (Media                     theMedia)                            TWOWORDINLINE(0x7068, 0xAAAA);
  1113.  
  1114. EXTERN_API( void )
  1115. SetMediaTimeScale                (Media                     theMedia,
  1116.                                  TimeScale                 timeScale)                            TWOWORDINLINE(0x7069, 0xAAAA);
  1117.  
  1118. EXTERN_API( TimeValue )
  1119. GetMediaDuration                (Media                     theMedia)                            TWOWORDINLINE(0x706A, 0xAAAA);
  1120.  
  1121. EXTERN_API( short )
  1122. GetMediaLanguage                (Media                     theMedia)                            TWOWORDINLINE(0x706B, 0xAAAA);
  1123.  
  1124. EXTERN_API( void )
  1125. SetMediaLanguage                (Media                     theMedia,
  1126.                                  short                     language)                            TWOWORDINLINE(0x706C, 0xAAAA);
  1127.  
  1128. EXTERN_API( short )
  1129. GetMediaQuality                    (Media                     theMedia)                            TWOWORDINLINE(0x706D, 0xAAAA);
  1130.  
  1131. EXTERN_API( void )
  1132. SetMediaQuality                    (Media                     theMedia,
  1133.                                  short                     quality)                            TWOWORDINLINE(0x706E, 0xAAAA);
  1134.  
  1135. EXTERN_API( void )
  1136. GetMediaHandlerDescription        (Media                     theMedia,
  1137.                                  OSType *                mediaType,
  1138.                                  Str255                 creatorName,
  1139.                                  OSType *                creatorManufacturer)                TWOWORDINLINE(0x706F, 0xAAAA);
  1140.  
  1141. EXTERN_API( UserData )
  1142. GetMediaUserData                (Media                     theMedia)                            TWOWORDINLINE(0x7070, 0xAAAA);
  1143.  
  1144. EXTERN_API( OSErr )
  1145. GetMediaInputMap                (Media                     theMedia,
  1146.                                  QTAtomContainer *        inputMap)                            THREEWORDINLINE(0x303C, 0x0249, 0xAAAA);
  1147.  
  1148. EXTERN_API( OSErr )
  1149. SetMediaInputMap                (Media                     theMedia,
  1150.                                  QTAtomContainer         inputMap)                            THREEWORDINLINE(0x303C, 0x024A, 0xAAAA);
  1151.  
  1152. /*************************
  1153. * Media Handler routines
  1154. **************************/
  1155. EXTERN_API( MediaHandler )
  1156. GetMediaHandler                    (Media                     theMedia)                            TWOWORDINLINE(0x7071, 0xAAAA);
  1157.  
  1158. EXTERN_API( OSErr )
  1159. SetMediaHandler                    (Media                     theMedia,
  1160.                                  MediaHandlerComponent     mH)                                    THREEWORDINLINE(0x303C, 0x0190, 0xAAAA);
  1161.  
  1162.  
  1163. /*************************
  1164. * Media's Data routines
  1165. **************************/
  1166. EXTERN_API( OSErr )
  1167. BeginMediaEdits                    (Media                     theMedia)                            TWOWORDINLINE(0x7072, 0xAAAA);
  1168.  
  1169. EXTERN_API( OSErr )
  1170. EndMediaEdits                    (Media                     theMedia)                            TWOWORDINLINE(0x7073, 0xAAAA);
  1171.  
  1172. EXTERN_API( OSErr )
  1173. SetMediaDefaultDataRefIndex        (Media                     theMedia,
  1174.                                  short                     index)                                THREEWORDINLINE(0x303C, 0x01E0, 0xAAAA);
  1175.  
  1176. EXTERN_API( void )
  1177. GetMediaDataHandlerDescription    (Media                     theMedia,
  1178.                                  short                     index,
  1179.                                  OSType *                dhType,
  1180.                                  Str255                 creatorName,
  1181.                                  OSType *                creatorManufacturer)                THREEWORDINLINE(0x303C, 0x019E, 0xAAAA);
  1182.  
  1183. EXTERN_API( DataHandler )
  1184. GetMediaDataHandler                (Media                     theMedia,
  1185.                                  short                     index)                                THREEWORDINLINE(0x303C, 0x019F, 0xAAAA);
  1186.  
  1187. EXTERN_API( OSErr )
  1188. SetMediaDataHandler                (Media                     theMedia,
  1189.                                  short                     index,
  1190.                                  DataHandlerComponent     dataHandler)                        THREEWORDINLINE(0x303C, 0x01A0, 0xAAAA);
  1191.  
  1192. EXTERN_API( Component )
  1193. GetDataHandler                    (Handle                 dataRef,
  1194.                                  OSType                 dataHandlerSubType,
  1195.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x01ED, 0xAAAA);
  1196.  
  1197.  
  1198. /*************************
  1199. * Media Sample Table Routines
  1200. **************************/
  1201. EXTERN_API( long )
  1202. GetMediaSampleDescriptionCount    (Media                     theMedia)                            TWOWORDINLINE(0x7077, 0xAAAA);
  1203.  
  1204. EXTERN_API( void )
  1205. GetMediaSampleDescription        (Media                     theMedia,
  1206.                                  long                     index,
  1207.                                  SampleDescriptionHandle  descH)                            TWOWORDINLINE(0x7078, 0xAAAA);
  1208.  
  1209. EXTERN_API( OSErr )
  1210. SetMediaSampleDescription        (Media                     theMedia,
  1211.                                  long                     index,
  1212.                                  SampleDescriptionHandle  descH)                            THREEWORDINLINE(0x303C, 0x01D0, 0xAAAA);
  1213.  
  1214. EXTERN_API( long )
  1215. GetMediaSampleCount                (Media                     theMedia)                            TWOWORDINLINE(0x7079, 0xAAAA);
  1216.  
  1217. EXTERN_API( void )
  1218. SampleNumToMediaTime            (Media                     theMedia,
  1219.                                  long                     logicalSampleNum,
  1220.                                  TimeValue *            sampleTime,
  1221.                                  TimeValue *            sampleDuration)                        TWOWORDINLINE(0x707A, 0xAAAA);
  1222.  
  1223. EXTERN_API( void )
  1224. MediaTimeToSampleNum            (Media                     theMedia,
  1225.                                  TimeValue                 time,
  1226.                                  long *                    sampleNum,
  1227.                                  TimeValue *            sampleTime,
  1228.                                  TimeValue *            sampleDuration)                        TWOWORDINLINE(0x707B, 0xAAAA);
  1229.  
  1230.  
  1231. EXTERN_API( OSErr )
  1232. AddMediaSample                    (Media                     theMedia,
  1233.                                  Handle                 dataIn,
  1234.                                  long                     inOffset,
  1235.                                  unsigned long             size,
  1236.                                  TimeValue                 durationPerSample,
  1237.                                  SampleDescriptionHandle  sampleDescriptionH,
  1238.                                  long                     numberOfSamples,
  1239.                                  short                     sampleFlags,
  1240.                                  TimeValue *            sampleTime)                            TWOWORDINLINE(0x707C, 0xAAAA);
  1241.  
  1242. EXTERN_API( OSErr )
  1243. AddMediaSampleReference            (Media                     theMedia,
  1244.                                  long                     dataOffset,
  1245.                                  unsigned long             size,
  1246.                                  TimeValue                 durationPerSample,
  1247.                                  SampleDescriptionHandle  sampleDescriptionH,
  1248.                                  long                     numberOfSamples,
  1249.                                  short                     sampleFlags,
  1250.                                  TimeValue *            sampleTime)                            TWOWORDINLINE(0x707D, 0xAAAA);
  1251.  
  1252. EXTERN_API( OSErr )
  1253. AddMediaSampleReferences        (Media                     theMedia,
  1254.                                  SampleDescriptionHandle  sampleDescriptionH,
  1255.                                  long                     numberOfSamples,
  1256.                                  SampleReferencePtr     sampleRefs,
  1257.                                  TimeValue *            sampleTime)                            THREEWORDINLINE(0x303C, 0x01F7, 0xAAAA);
  1258.  
  1259. EXTERN_API( OSErr )
  1260. GetMediaSample                    (Media                     theMedia,
  1261.                                  Handle                 dataOut,
  1262.                                  long                     maxSizeToGrow,
  1263.                                  long *                    size,
  1264.                                  TimeValue                 time,
  1265.                                  TimeValue *            sampleTime,
  1266.                                  TimeValue *            durationPerSample,
  1267.                                  SampleDescriptionHandle  sampleDescriptionH,
  1268.                                  long *                    sampleDescriptionIndex,
  1269.                                  long                     maxNumberOfSamples,
  1270.                                  long *                    numberOfSamples,
  1271.                                  short *                sampleFlags)                        TWOWORDINLINE(0x707E, 0xAAAA);
  1272.  
  1273. EXTERN_API( OSErr )
  1274. GetMediaSampleReference            (Media                     theMedia,
  1275.                                  long *                    dataOffset,
  1276.                                  long *                    size,
  1277.                                  TimeValue                 time,
  1278.                                  TimeValue *            sampleTime,
  1279.                                  TimeValue *            durationPerSample,
  1280.                                  SampleDescriptionHandle  sampleDescriptionH,
  1281.                                  long *                    sampleDescriptionIndex,
  1282.                                  long                     maxNumberOfSamples,
  1283.                                  long *                    numberOfSamples,
  1284.                                  short *                sampleFlags)                        TWOWORDINLINE(0x707F, 0xAAAA);
  1285.  
  1286. EXTERN_API( OSErr )
  1287. GetMediaSampleReferences        (Media                     theMedia,
  1288.                                  TimeValue                 time,
  1289.                                  TimeValue *            sampleTime,
  1290.                                  SampleDescriptionHandle  sampleDescriptionH,
  1291.                                  long *                    sampleDescriptionIndex,
  1292.                                  long                     maxNumberOfEntries,
  1293.                                  long *                    actualNumberofEntries,
  1294.                                  SampleReferencePtr     sampleRefs)                            THREEWORDINLINE(0x303C, 0x0235, 0xAAAA);
  1295.  
  1296. EXTERN_API( OSErr )
  1297. SetMediaPreferredChunkSize        (Media                     theMedia,
  1298.                                  long                     maxChunkSize)                        THREEWORDINLINE(0x303C, 0x01F8, 0xAAAA);
  1299.  
  1300. EXTERN_API( OSErr )
  1301. GetMediaPreferredChunkSize        (Media                     theMedia,
  1302.                                  long *                    maxChunkSize)                        THREEWORDINLINE(0x303C, 0x01F9, 0xAAAA);
  1303.  
  1304. EXTERN_API( OSErr )
  1305. SetMediaShadowSync                (Media                     theMedia,
  1306.                                  long                     frameDiffSampleNum,
  1307.                                  long                     syncSampleNum)                        THREEWORDINLINE(0x303C, 0x0121, 0xAAAA);
  1308.  
  1309. EXTERN_API( OSErr )
  1310. GetMediaShadowSync                (Media                     theMedia,
  1311.                                  long                     frameDiffSampleNum,
  1312.                                  long *                    syncSampleNum)                        THREEWORDINLINE(0x303C, 0x0122, 0xAAAA);
  1313.  
  1314. /*************************
  1315. * Editing Routines
  1316. **************************/
  1317. EXTERN_API( OSErr )
  1318. InsertMediaIntoTrack            (Track                     theTrack,
  1319.                                  TimeValue                 trackStart,
  1320.                                  TimeValue                 mediaTime,
  1321.                                  TimeValue                 mediaDuration,
  1322.                                  Fixed                     mediaRate)                            THREEWORDINLINE(0x303C, 0x0183, 0xAAAA);
  1323.  
  1324. EXTERN_API( OSErr )
  1325. InsertTrackSegment                (Track                     srcTrack,
  1326.                                  Track                     dstTrack,
  1327.                                  TimeValue                 srcIn,
  1328.                                  TimeValue                 srcDuration,
  1329.                                  TimeValue                 dstIn)                                THREEWORDINLINE(0x303C, 0x0085, 0xAAAA);
  1330.  
  1331. EXTERN_API( OSErr )
  1332. InsertMovieSegment                (Movie                     srcMovie,
  1333.                                  Movie                     dstMovie,
  1334.                                  TimeValue                 srcIn,
  1335.                                  TimeValue                 srcDuration,
  1336.                                  TimeValue                 dstIn)                                THREEWORDINLINE(0x303C, 0x0086, 0xAAAA);
  1337.  
  1338. EXTERN_API( OSErr )
  1339. InsertEmptyTrackSegment            (Track                     dstTrack,
  1340.                                  TimeValue                 dstIn,
  1341.                                  TimeValue                 dstDuration)                        THREEWORDINLINE(0x303C, 0x0087, 0xAAAA);
  1342.  
  1343. EXTERN_API( OSErr )
  1344. InsertEmptyMovieSegment            (Movie                     dstMovie,
  1345.                                  TimeValue                 dstIn,
  1346.                                  TimeValue                 dstDuration)                        THREEWORDINLINE(0x303C, 0x0088, 0xAAAA);
  1347.  
  1348. EXTERN_API( OSErr )
  1349. DeleteTrackSegment                (Track                     theTrack,
  1350.                                  TimeValue                 startTime,
  1351.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0089, 0xAAAA);
  1352.  
  1353. EXTERN_API( OSErr )
  1354. DeleteMovieSegment                (Movie                     theMovie,
  1355.                                  TimeValue                 startTime,
  1356.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x008A, 0xAAAA);
  1357.  
  1358. EXTERN_API( OSErr )
  1359. ScaleTrackSegment                (Track                     theTrack,
  1360.                                  TimeValue                 startTime,
  1361.                                  TimeValue                 oldDuration,
  1362.                                  TimeValue                 newDuration)                        THREEWORDINLINE(0x303C, 0x008B, 0xAAAA);
  1363.  
  1364. EXTERN_API( OSErr )
  1365. ScaleMovieSegment                (Movie                     theMovie,
  1366.                                  TimeValue                 startTime,
  1367.                                  TimeValue                 oldDuration,
  1368.                                  TimeValue                 newDuration)                        THREEWORDINLINE(0x303C, 0x008C, 0xAAAA);
  1369.  
  1370.  
  1371. /*************************
  1372. * Hi-level Editing Routines
  1373. **************************/
  1374. EXTERN_API( Movie )
  1375. CutMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x008D, 0xAAAA);
  1376.  
  1377. EXTERN_API( Movie )
  1378. CopyMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x008E, 0xAAAA);
  1379.  
  1380. EXTERN_API( void )
  1381. PasteMovieSelection                (Movie                     theMovie,
  1382.                                  Movie                     src)                                THREEWORDINLINE(0x303C, 0x008F, 0xAAAA);
  1383.  
  1384. EXTERN_API( void )
  1385. AddMovieSelection                (Movie                     theMovie,
  1386.                                  Movie                     src)                                THREEWORDINLINE(0x303C, 0x0152, 0xAAAA);
  1387.  
  1388. EXTERN_API( void )
  1389. ClearMovieSelection                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00E1, 0xAAAA);
  1390.  
  1391. EXTERN_API( OSErr )
  1392. PasteHandleIntoMovie            (Handle                 h,
  1393.                                  OSType                 handleType,
  1394.                                  Movie                     theMovie,
  1395.                                  long                     flags,
  1396.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x00CB, 0xAAAA);
  1397.  
  1398. EXTERN_API( OSErr )
  1399. PutMovieIntoTypedHandle            (Movie                     theMovie,
  1400.                                  Track                     targetTrack,
  1401.                                  OSType                 handleType,
  1402.                                  Handle                 publicMovie,
  1403.                                  TimeValue                 start,
  1404.                                  TimeValue                 dur,
  1405.                                  long                     flags,
  1406.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x01CD, 0xAAAA);
  1407.  
  1408. EXTERN_API( Component )
  1409. IsScrapMovie                    (Track                     targetTrack)                        THREEWORDINLINE(0x303C, 0x00CC, 0xAAAA);
  1410.  
  1411. /*************************
  1412. * Middle-level Editing Routines
  1413. **************************/
  1414. EXTERN_API( OSErr )
  1415. CopyTrackSettings                (Track                     srcTrack,
  1416.                                  Track                     dstTrack)                            THREEWORDINLINE(0x303C, 0x0153, 0xAAAA);
  1417.  
  1418. EXTERN_API( OSErr )
  1419. CopyMovieSettings                (Movie                     srcMovie,
  1420.                                  Movie                     dstMovie)                            THREEWORDINLINE(0x303C, 0x0154, 0xAAAA);
  1421.  
  1422. EXTERN_API( OSErr )
  1423. AddEmptyTrackToMovie            (Track                     srcTrack,
  1424.                                  Movie                     dstMovie,
  1425.                                  Handle                 dataRef,
  1426.                                  OSType                 dataRefType,
  1427.                                  Track *                dstTrack)                            TWOWORDINLINE(0x7074, 0xAAAA);
  1428.  
  1429. /*************************
  1430. * movie & track edit state routines
  1431. **************************/
  1432. EXTERN_API( MovieEditState )
  1433. NewMovieEditState                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0104, 0xAAAA);
  1434.  
  1435. EXTERN_API( OSErr )
  1436. UseMovieEditState                (Movie                     theMovie,
  1437.                                  MovieEditState         toState)                            THREEWORDINLINE(0x303C, 0x0105, 0xAAAA);
  1438.  
  1439. EXTERN_API( OSErr )
  1440. DisposeMovieEditState            (MovieEditState         state)                                THREEWORDINLINE(0x303C, 0x0106, 0xAAAA);
  1441.  
  1442. EXTERN_API( TrackEditState )
  1443. NewTrackEditState                (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0107, 0xAAAA);
  1444.  
  1445. EXTERN_API( OSErr )
  1446. UseTrackEditState                (Track                     theTrack,
  1447.                                  TrackEditState         state)                                THREEWORDINLINE(0x303C, 0x0108, 0xAAAA);
  1448.  
  1449. EXTERN_API( OSErr )
  1450. DisposeTrackEditState            (TrackEditState         state)                                THREEWORDINLINE(0x303C, 0x0109, 0xAAAA);
  1451.  
  1452. /*************************
  1453. * track reference routines
  1454. **************************/
  1455. EXTERN_API( OSErr )
  1456. AddTrackReference                (Track                     theTrack,
  1457.                                  Track                     refTrack,
  1458.                                  OSType                 refType,
  1459.                                  long *                    addedIndex)                            THREEWORDINLINE(0x303C, 0x01F0, 0xAAAA);
  1460.  
  1461. EXTERN_API( OSErr )
  1462. DeleteTrackReference            (Track                     theTrack,
  1463.                                  OSType                 refType,
  1464.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F1, 0xAAAA);
  1465.  
  1466. EXTERN_API( OSErr )
  1467. SetTrackReference                (Track                     theTrack,
  1468.                                  Track                     refTrack,
  1469.                                  OSType                 refType,
  1470.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F2, 0xAAAA);
  1471.  
  1472. EXTERN_API( Track )
  1473. GetTrackReference                (Track                     theTrack,
  1474.                                  OSType                 refType,
  1475.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x01F3, 0xAAAA);
  1476.  
  1477. EXTERN_API( OSType )
  1478. GetNextTrackReferenceType        (Track                     theTrack,
  1479.                                  OSType                 refType)                            THREEWORDINLINE(0x303C, 0x01F4, 0xAAAA);
  1480.  
  1481. EXTERN_API( long )
  1482. GetTrackReferenceCount            (Track                     theTrack,
  1483.                                  OSType                 refType)                            THREEWORDINLINE(0x303C, 0x01F5, 0xAAAA);
  1484.  
  1485.  
  1486. /*************************
  1487. * high level file conversion routines
  1488. **************************/
  1489. EXTERN_API( OSErr )
  1490. ConvertFileToMovieFile            (const FSSpec *            inputFile,
  1491.                                  const FSSpec *            outputFile,
  1492.                                  OSType                 creator,
  1493.                                  ScriptCode             scriptTag,
  1494.                                  short *                resID,
  1495.                                  long                     flags,
  1496.                                  ComponentInstance         userComp,
  1497.                                  MovieProgressUPP         proc,
  1498.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x01CB, 0xAAAA);
  1499.  
  1500. EXTERN_API( OSErr )
  1501. ConvertMovieToFile                (Movie                     theMovie,
  1502.                                  Track                     onlyTrack,
  1503.                                  FSSpec *                outputFile,
  1504.                                  OSType                 fileType,
  1505.                                  OSType                 creator,
  1506.                                  ScriptCode             scriptTag,
  1507.                                  short *                resID,
  1508.                                  long                     flags,
  1509.                                  ComponentInstance         userComp)                            THREEWORDINLINE(0x303C, 0x01CC, 0xAAAA);
  1510.  
  1511. /*************************
  1512. * Movie Timebase Conversion Routines
  1513. **************************/
  1514. EXTERN_API( TimeValue )
  1515. TrackTimeToMediaTime            (TimeValue                 value,
  1516.                                  Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0096, 0xAAAA);
  1517.  
  1518. EXTERN_API( Fixed )
  1519. GetTrackEditRate                (Track                     theTrack,
  1520.                                  TimeValue                 atTime)                                THREEWORDINLINE(0x303C, 0x0123, 0xAAAA);
  1521.  
  1522.  
  1523. /*************************
  1524. * Miscellaneous Routines
  1525. **************************/
  1526.  
  1527. EXTERN_API( long )
  1528. GetMovieDataSize                (Movie                     theMovie,
  1529.                                  TimeValue                 startTime,
  1530.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0098, 0xAAAA);
  1531.  
  1532. EXTERN_API( long )
  1533. GetTrackDataSize                (Track                     theTrack,
  1534.                                  TimeValue                 startTime,
  1535.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0149, 0xAAAA);
  1536.  
  1537. EXTERN_API( long )
  1538. GetMediaDataSize                (Media                     theMedia,
  1539.                                  TimeValue                 startTime,
  1540.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x0099, 0xAAAA);
  1541.  
  1542. EXTERN_API( Boolean )
  1543. PtInMovie                        (Movie                     theMovie,
  1544.                                  Point                     pt)                                    THREEWORDINLINE(0x303C, 0x009A, 0xAAAA);
  1545.  
  1546. EXTERN_API( Boolean )
  1547. PtInTrack                        (Track                     theTrack,
  1548.                                  Point                     pt)                                    THREEWORDINLINE(0x303C, 0x009B, 0xAAAA);
  1549.  
  1550.  
  1551. /*************************
  1552. * Group Selection Routines
  1553. **************************/
  1554.  
  1555. EXTERN_API( void )
  1556. SetMovieLanguage                (Movie                     theMovie,
  1557.                                  long                     language)                            THREEWORDINLINE(0x303C, 0x009C, 0xAAAA);
  1558.  
  1559.  
  1560. /*************************
  1561. * User Data
  1562. **************************/
  1563.  
  1564. EXTERN_API( OSErr )
  1565. GetUserData                        (UserData                 theUserData,
  1566.                                  Handle                 data,
  1567.                                  OSType                 udType,
  1568.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x009E, 0xAAAA);
  1569.  
  1570. EXTERN_API( OSErr )
  1571. AddUserData                        (UserData                 theUserData,
  1572.                                  Handle                 data,
  1573.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x009F, 0xAAAA);
  1574.  
  1575. EXTERN_API( OSErr )
  1576. RemoveUserData                    (UserData                 theUserData,
  1577.                                  OSType                 udType,
  1578.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x00A0, 0xAAAA);
  1579.  
  1580. EXTERN_API( short )
  1581. CountUserDataType                (UserData                 theUserData,
  1582.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x014B, 0xAAAA);
  1583.  
  1584. EXTERN_API( long )
  1585. GetNextUserDataType                (UserData                 theUserData,
  1586.                                  OSType                 udType)                                THREEWORDINLINE(0x303C, 0x01A5, 0xAAAA);
  1587.  
  1588. EXTERN_API( OSErr )
  1589. GetUserDataItem                    (UserData                 theUserData,
  1590.                                  void *                    data,
  1591.                                  long                     size,
  1592.                                  OSType                 udType,
  1593.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x0126, 0xAAAA);
  1594.  
  1595. EXTERN_API( OSErr )
  1596. SetUserDataItem                    (UserData                 theUserData,
  1597.                                  void *                    data,
  1598.                                  long                     size,
  1599.                                  OSType                 udType,
  1600.                                  long                     index)                                THREEWORDINLINE(0x303C, 0x012E, 0xAAAA);
  1601.  
  1602. EXTERN_API( OSErr )
  1603. AddUserDataText                    (UserData                 theUserData,
  1604.                                  Handle                 data,
  1605.                                  OSType                 udType,
  1606.                                  long                     index,
  1607.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014C, 0xAAAA);
  1608.  
  1609. EXTERN_API( OSErr )
  1610. GetUserDataText                    (UserData                 theUserData,
  1611.                                  Handle                 data,
  1612.                                  OSType                 udType,
  1613.                                  long                     index,
  1614.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014D, 0xAAAA);
  1615.  
  1616. EXTERN_API( OSErr )
  1617. RemoveUserDataText                (UserData                 theUserData,
  1618.                                  OSType                 udType,
  1619.                                  long                     index,
  1620.                                  short                     itlRegionTag)                        THREEWORDINLINE(0x303C, 0x014E, 0xAAAA);
  1621.  
  1622. EXTERN_API( OSErr )
  1623. NewUserData                        (UserData *                theUserData)                        THREEWORDINLINE(0x303C, 0x012F, 0xAAAA);
  1624.  
  1625. EXTERN_API( OSErr )
  1626. DisposeUserData                    (UserData                 theUserData)                        THREEWORDINLINE(0x303C, 0x0130, 0xAAAA);
  1627.  
  1628. EXTERN_API( OSErr )
  1629. NewUserDataFromHandle            (Handle                 h,
  1630.                                  UserData *                theUserData)                        THREEWORDINLINE(0x303C, 0x0131, 0xAAAA);
  1631.  
  1632. EXTERN_API( OSErr )
  1633. PutUserDataIntoHandle            (UserData                 theUserData,
  1634.                                  Handle                 h)                                    THREEWORDINLINE(0x303C, 0x0132, 0xAAAA);
  1635.  
  1636. EXTERN_API( void )
  1637. GetMediaNextInterestingTime        (Media                     theMedia,
  1638.                                  short                     interestingTimeFlags,
  1639.                                  TimeValue                 time,
  1640.                                  Fixed                     rate,
  1641.                                  TimeValue *            interestingTime,
  1642.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x016D, 0xAAAA);
  1643.  
  1644. EXTERN_API( void )
  1645. GetTrackNextInterestingTime        (Track                     theTrack,
  1646.                                  short                     interestingTimeFlags,
  1647.                                  TimeValue                 time,
  1648.                                  Fixed                     rate,
  1649.                                  TimeValue *            interestingTime,
  1650.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x00E2, 0xAAAA);
  1651.  
  1652. EXTERN_API( void )
  1653. GetMovieNextInterestingTime        (Movie                     theMovie,
  1654.                                  short                     interestingTimeFlags,
  1655.                                  short                     numMediaTypes,
  1656.                                  const OSType *            whichMediaTypes,
  1657.                                  TimeValue                 time,
  1658.                                  Fixed                     rate,
  1659.                                  TimeValue *            interestingTime,
  1660.                                  TimeValue *            interestingDuration)                THREEWORDINLINE(0x303C, 0x010E, 0xAAAA);
  1661.  
  1662.  
  1663. EXTERN_API( OSErr )
  1664. CreateMovieFile                    (const FSSpec *            fileSpec,
  1665.                                  OSType                 creator,
  1666.                                  ScriptCode             scriptTag,
  1667.                                  long                     createMovieFileFlags,
  1668.                                  short *                resRefNum,
  1669.                                  Movie *                newmovie)                            THREEWORDINLINE(0x303C, 0x0191, 0xAAAA);
  1670.  
  1671. EXTERN_API( OSErr )
  1672. OpenMovieFile                    (const FSSpec *            fileSpec,
  1673.                                  short *                resRefNum,
  1674.                                  SInt8                     permission)                            THREEWORDINLINE(0x303C, 0x0192, 0xAAAA);
  1675.  
  1676. EXTERN_API( OSErr )
  1677. CloseMovieFile                    (short                     resRefNum)                            THREEWORDINLINE(0x303C, 0x00D5, 0xAAAA);
  1678.  
  1679. EXTERN_API( OSErr )
  1680. DeleteMovieFile                    (const FSSpec *            fileSpec)                            THREEWORDINLINE(0x303C, 0x0175, 0xAAAA);
  1681.  
  1682. EXTERN_API( OSErr )
  1683. NewMovieFromFile                (Movie *                theMovie,
  1684.                                  short                     resRefNum,
  1685.                                  short *                resId,
  1686.                                  StringPtr                 resName,
  1687.                                  short                     newMovieFlags,
  1688.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x00F0, 0xAAAA);
  1689.  
  1690. EXTERN_API( OSErr )
  1691. NewMovieFromHandle                (Movie *                theMovie,
  1692.                                  Handle                 h,
  1693.                                  short                     newMovieFlags,
  1694.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x00F1, 0xAAAA);
  1695.  
  1696. EXTERN_API( OSErr )
  1697. NewMovieFromDataFork            (Movie *                theMovie,
  1698.                                  short                     fRefNum,
  1699.                                  long                     fileOffset,
  1700.                                  short                     newMovieFlags,
  1701.                                  Boolean *                dataRefWasChanged)                    THREEWORDINLINE(0x303C, 0x01B3, 0xAAAA);
  1702.  
  1703. EXTERN_API( OSErr )
  1704. NewMovieFromUserProc            (Movie *                m,
  1705.                                  short                     flags,
  1706.                                  Boolean *                dataRefWasChanged,
  1707.                                  GetMovieUPP             getProc,
  1708.                                  void *                    refCon,
  1709.                                  Handle                 defaultDataRef,
  1710.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01EC, 0xAAAA);
  1711.  
  1712. EXTERN_API( OSErr )
  1713. NewMovieFromDataRef                (Movie *                m,
  1714.                                  short                     flags,
  1715.                                  short *                id,
  1716.                                  Handle                 dataRef,
  1717.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x0220, 0xAAAA);
  1718.  
  1719. EXTERN_API( OSErr )
  1720. AddMovieResource                (Movie                     theMovie,
  1721.                                  short                     resRefNum,
  1722.                                  short *                resId,
  1723.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x00D7, 0xAAAA);
  1724.  
  1725. EXTERN_API( OSErr )
  1726. UpdateMovieResource                (Movie                     theMovie,
  1727.                                  short                     resRefNum,
  1728.                                  short                     resId,
  1729.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x00D8, 0xAAAA);
  1730.  
  1731. EXTERN_API( OSErr )
  1732. RemoveMovieResource                (short                     resRefNum,
  1733.                                  short                     resId)                                THREEWORDINLINE(0x303C, 0x0176, 0xAAAA);
  1734.  
  1735. EXTERN_API( Boolean )
  1736. HasMovieChanged                    (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x00D9, 0xAAAA);
  1737.  
  1738. EXTERN_API( void )
  1739. ClearMovieChanged                (Movie                     theMovie)                            THREEWORDINLINE(0x303C, 0x0113, 0xAAAA);
  1740.  
  1741. EXTERN_API( OSErr )
  1742. SetMovieDefaultDataRef            (Movie                     theMovie,
  1743.                                  Handle                 dataRef,
  1744.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01C1, 0xAAAA);
  1745.  
  1746. EXTERN_API( OSErr )
  1747. GetMovieDefaultDataRef            (Movie                     theMovie,
  1748.                                  Handle *                dataRef,
  1749.                                  OSType *                dataRefType)                        THREEWORDINLINE(0x303C, 0x01D2, 0xAAAA);
  1750.  
  1751. EXTERN_API( OSErr )
  1752. SetMovieColorTable                (Movie                     theMovie,
  1753.                                  CTabHandle             ctab)                                THREEWORDINLINE(0x303C, 0x0205, 0xAAAA);
  1754.  
  1755. EXTERN_API( OSErr )
  1756. GetMovieColorTable                (Movie                     theMovie,
  1757.                                  CTabHandle *            ctab)                                THREEWORDINLINE(0x303C, 0x0206, 0xAAAA);
  1758.  
  1759. EXTERN_API( void )
  1760. FlattenMovie                    (Movie                     theMovie,
  1761.                                  long                     movieFlattenFlags,
  1762.                                  const FSSpec *            theFile,
  1763.                                  OSType                 creator,
  1764.                                  ScriptCode             scriptTag,
  1765.                                  long                     createMovieFileFlags,
  1766.                                  short *                resId,
  1767.                                  ConstStr255Param         resName)                            THREEWORDINLINE(0x303C, 0x019B, 0xAAAA);
  1768.  
  1769. EXTERN_API( Movie )
  1770. FlattenMovieData                (Movie                     theMovie,
  1771.                                  long                     movieFlattenFlags,
  1772.                                  const FSSpec *            theFile,
  1773.                                  OSType                 creator,
  1774.                                  ScriptCode             scriptTag,
  1775.                                  long                     createMovieFileFlags)                THREEWORDINLINE(0x303C, 0x019C, 0xAAAA);
  1776.  
  1777. EXTERN_API( void )
  1778. SetMovieProgressProc            (Movie                     theMovie,
  1779.                                  MovieProgressUPP         p,
  1780.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x019A, 0xAAAA);
  1781.  
  1782. EXTERN_API( OSErr )
  1783. MovieSearchText                    (Movie                     theMovie,
  1784.                                  Ptr                     text,
  1785.                                  long                     size,
  1786.                                  long                     searchFlags,
  1787.                                  Track *                searchTrack,
  1788.                                  TimeValue *            searchTime,
  1789.                                  long *                    searchOffset)                        THREEWORDINLINE(0x303C, 0x0207, 0xAAAA);
  1790.  
  1791. EXTERN_API( void )
  1792. GetPosterBox                    (Movie                     theMovie,
  1793.                                  Rect *                    boxRect)                            THREEWORDINLINE(0x303C, 0x016F, 0xAAAA);
  1794.  
  1795. EXTERN_API( void )
  1796. SetPosterBox                    (Movie                     theMovie,
  1797.                                  const Rect *            boxRect)                            THREEWORDINLINE(0x303C, 0x0170, 0xAAAA);
  1798.  
  1799. EXTERN_API( RgnHandle )
  1800. GetMovieSegmentDisplayBoundsRgn    (Movie                     theMovie,
  1801.                                  TimeValue                 time,
  1802.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x016C, 0xAAAA);
  1803.  
  1804. EXTERN_API( RgnHandle )
  1805. GetTrackSegmentDisplayBoundsRgn    (Track                     theTrack,
  1806.                                  TimeValue                 time,
  1807.                                  TimeValue                 duration)                            THREEWORDINLINE(0x303C, 0x016B, 0xAAAA);
  1808.  
  1809. EXTERN_API( void )
  1810. SetMovieCoverProcs                (Movie                     theMovie,
  1811.                                  MovieRgnCoverUPP         uncoverProc,
  1812.                                  MovieRgnCoverUPP         coverProc,
  1813.                                  long                     refcon)                                THREEWORDINLINE(0x303C, 0x0179, 0xAAAA);
  1814.  
  1815. EXTERN_API( OSErr )
  1816. GetMovieCoverProcs                (Movie                     theMovie,
  1817.                                  MovieRgnCoverUPP *        uncoverProc,
  1818.                                  MovieRgnCoverUPP *        coverProc,
  1819.                                  long *                    refcon)                                THREEWORDINLINE(0x303C, 0x01DD, 0xAAAA);
  1820.  
  1821. EXTERN_API( ComponentResult )
  1822. GetTrackStatus                    (Track                     theTrack)                            THREEWORDINLINE(0x303C, 0x0172, 0xAAAA);
  1823.  
  1824. EXTERN_API( ComponentResult )
  1825. GetMovieStatus                    (Movie                     theMovie,
  1826.                                  Track *                firstProblemTrack)                    THREEWORDINLINE(0x303C, 0x0173, 0xAAAA);
  1827.  
  1828. /****
  1829.     Movie Controller support routines
  1830. ****/
  1831. EXTERN_API( ComponentInstance )
  1832. NewMovieController                (Movie                     theMovie,
  1833.                                  const Rect *            movieRect,
  1834.                                  long                     someFlags)                            THREEWORDINLINE(0x303C, 0x018A, 0xAAAA);
  1835.  
  1836. EXTERN_API( void )
  1837. DisposeMovieController            (ComponentInstance         mc)                                    THREEWORDINLINE(0x303C, 0x018B, 0xAAAA);
  1838.  
  1839. EXTERN_API( void )
  1840. ShowMovieInformation            (Movie                     theMovie,
  1841.                                  ModalFilterUPP         filterProc,
  1842.                                  long                     refCon)                                THREEWORDINLINE(0x303C, 0x0209, 0xAAAA);
  1843.  
  1844.  
  1845. /*****
  1846.     Scrap routines
  1847. *****/
  1848. EXTERN_API( OSErr )
  1849. PutMovieOnScrap                    (Movie                     theMovie,
  1850.                                  long                     movieScrapFlags)                    THREEWORDINLINE(0x303C, 0x018C, 0xAAAA);
  1851.  
  1852. EXTERN_API( Movie )
  1853. NewMovieFromScrap                (long                     newMovieFlags)                        THREEWORDINLINE(0x303C, 0x018D, 0xAAAA);
  1854.  
  1855.  
  1856. /*****
  1857.     DataRef routines
  1858. *****/
  1859.  
  1860. EXTERN_API( OSErr )
  1861. GetMediaDataRef                    (Media                     theMedia,
  1862.                                  short                     index,
  1863.                                  Handle *                dataRef,
  1864.                                  OSType *                dataRefType,
  1865.                                  long *                    dataRefAttributes)                    THREEWORDINLINE(0x303C, 0x0197, 0xAAAA);
  1866.  
  1867. EXTERN_API( OSErr )
  1868. SetMediaDataRef                    (Media                     theMedia,
  1869.                                  short                     index,
  1870.                                  Handle                 dataRef,
  1871.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x01C9, 0xAAAA);
  1872.  
  1873. EXTERN_API( OSErr )
  1874. SetMediaDataRefAttributes        (Media                     theMedia,
  1875.                                  short                     index,
  1876.                                  long                     dataRefAttributes)                    THREEWORDINLINE(0x303C, 0x01CA, 0xAAAA);
  1877.  
  1878. EXTERN_API( OSErr )
  1879. AddMediaDataRef                    (Media                     theMedia,
  1880.                                  short *                index,
  1881.                                  Handle                 dataRef,
  1882.                                  OSType                 dataRefType)                        THREEWORDINLINE(0x303C, 0x0198, 0xAAAA);
  1883.  
  1884. EXTERN_API( OSErr )
  1885. GetMediaDataRefCount            (Media                     theMedia,
  1886.                                  short *                count)                                THREEWORDINLINE(0x303C, 0x0199, 0xAAAA);
  1887.  
  1888. /*****
  1889.     Playback hint routines
  1890. *****/
  1891. EXTERN_API( void )
  1892. SetMoviePlayHints                (Movie                     theMovie,
  1893.                                  long                     flags,
  1894.                                  long                     flagsMask)                            THREEWORDINLINE(0x303C, 0x01A1, 0xAAAA);
  1895.  
  1896. EXTERN_API( void )
  1897. SetMediaPlayHints                (Media                     theMedia,
  1898.                                  long                     flags,
  1899.                                  long                     flagsMask)                            THREEWORDINLINE(0x303C, 0x01A2, 0xAAAA);
  1900.  
  1901. /*****
  1902.     Load time track hints
  1903. *****/
  1904.  
  1905. enum {
  1906.     preloadAlways                = 1L << 0,
  1907.     preloadOnlyIfEnabled        = 1L << 1
  1908. };
  1909.  
  1910. EXTERN_API( void )
  1911. SetTrackLoadSettings            (Track                     theTrack,
  1912.                                  TimeValue                 preloadTime,
  1913.                                  TimeValue                 preloadDuration,
  1914.                                  long                     preloadFlags,
  1915.                                  long                     defaultHints)                        THREEWORDINLINE(0x303C, 0x01E3, 0xAAAA);
  1916.  
  1917. EXTERN_API( void )
  1918. GetTrackLoadSettings            (Track                     theTrack,
  1919.                                  TimeValue *            preloadTime,
  1920.                                  TimeValue *            preloadDuration,
  1921.                                  long *                    preloadFlags,
  1922.                                  long *                    defaultHints)                        THREEWORDINLINE(0x303C, 0x01E4, 0xAAAA);
  1923.  
  1924. /*****
  1925.     Big screen TV
  1926. *****/
  1927.  
  1928. enum {
  1929.     fullScreenHideCursor        = 1L << 0,
  1930.     fullScreenAllowEvents        = 1L << 1,
  1931.     fullScreenDontChangeMenuBar    = 1L << 2,
  1932.     fullScreenPreflightSize        = 1L << 3
  1933. };
  1934.  
  1935. EXTERN_API( OSErr )
  1936. BeginFullScreen                    (Ptr *                    restoreState,
  1937.                                  GDHandle                 whichGD,
  1938.                                  short *                desiredWidth,
  1939.                                  short *                desiredHeight,
  1940.                                  WindowPtr *            newWindow,
  1941.                                  RGBColor *                eraseColor,
  1942.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0233, 0xAAAA);
  1943.  
  1944. EXTERN_API( OSErr )
  1945. EndFullScreen                    (Ptr                     fullState,
  1946.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x0234, 0xAAAA);
  1947.  
  1948. /*****
  1949.     Sprite Toolbox
  1950. *****/
  1951.  
  1952. enum {
  1953.     kBackgroundSpriteLayerNum    = 32767
  1954. };
  1955.  
  1956. /*  Sprite Properties*/
  1957.  
  1958. enum {
  1959.     kSpritePropertyMatrix        = 1,
  1960.     kSpritePropertyImageDescription = 2,
  1961.     kSpritePropertyImageDataPtr    = 3,
  1962.     kSpritePropertyVisible        = 4,
  1963.     kSpritePropertyLayer        = 5,
  1964.     kSpritePropertyGraphicsMode    = 6,
  1965.     kSpritePropertyImageIndex    = 100,
  1966.     kSpriteTrackPropertyBackgroundColor = 101,
  1967.     kSpriteTrackPropertyOffscreenBitDepth = 102,
  1968.     kSpriteTrackPropertySampleFormat = 103
  1969. };
  1970.  
  1971. /* flagsIn for SpriteWorldIdle*/
  1972.  
  1973. enum {
  1974.     kOnlyDrawToSpriteWorld        = 1L << 0,
  1975.     kSpriteWorldPreflight        = 1L << 1
  1976. };
  1977.  
  1978. /* flagsOut for SpriteWorldIdle*/
  1979.  
  1980. enum {
  1981.     kSpriteWorldDidDraw            = 1L << 0,
  1982.     kSpriteWorldNeedsToDraw        = 1L << 1
  1983. };
  1984.  
  1985. /* flags for sprite track sample format*/
  1986.  
  1987. enum {
  1988.     kKeyFrameAndSingleOverride    = 1L << 1,
  1989.     kKeyFrameAndAllOverrides    = 1L << 2
  1990. };
  1991.  
  1992. EXTERN_API( OSErr )
  1993. NewSpriteWorld                    (SpriteWorld *            newSpriteWorld,
  1994.                                  GWorldPtr                 destination,
  1995.                                  GWorldPtr                 spriteLayer,
  1996.                                  RGBColor *                backgroundColor,
  1997.                                  GWorldPtr                 background)                            THREEWORDINLINE(0x303C, 0x0239, 0xAAAA);
  1998.  
  1999. EXTERN_API( void )
  2000. DisposeSpriteWorld                (SpriteWorld             theSpriteWorld)                        THREEWORDINLINE(0x303C, 0x023A, 0xAAAA);
  2001.  
  2002. EXTERN_API( OSErr )
  2003. SetSpriteWorldClip                (SpriteWorld             theSpriteWorld,
  2004.                                  RgnHandle                 clipRgn)                            THREEWORDINLINE(0x303C, 0x023B, 0xAAAA);
  2005.  
  2006. EXTERN_API( OSErr )
  2007. SetSpriteWorldMatrix            (SpriteWorld             theSpriteWorld,
  2008.                                  const MatrixRecord *    matrix)                                THREEWORDINLINE(0x303C, 0x023C, 0xAAAA);
  2009.  
  2010. EXTERN_API( OSErr )
  2011. SpriteWorldIdle                    (SpriteWorld             theSpriteWorld,
  2012.                                  long                     flagsIn,
  2013.                                  long *                    flagsOut)                            THREEWORDINLINE(0x303C, 0x023D, 0xAAAA);
  2014.  
  2015. EXTERN_API( OSErr )
  2016. InvalidateSpriteWorld            (SpriteWorld             theSpriteWorld,
  2017.                                  Rect *                    invalidArea)                        THREEWORDINLINE(0x303C, 0x023E, 0xAAAA);
  2018.  
  2019. EXTERN_API( OSErr )
  2020. SpriteWorldHitTest                (SpriteWorld             theSpriteWorld,
  2021.                                  long                     flags,
  2022.                                  Point                     loc,
  2023.                                  Sprite *                spriteHit)                            THREEWORDINLINE(0x303C, 0x0246, 0xAAAA);
  2024.  
  2025. EXTERN_API( OSErr )
  2026. SpriteHitTest                    (Sprite                 theSprite,
  2027.                                  long                     flags,
  2028.                                  Point                     loc,
  2029.                                  Boolean *                wasHit)                                THREEWORDINLINE(0x303C, 0x0247, 0xAAAA);
  2030.  
  2031. EXTERN_API( void )
  2032. DisposeAllSprites                (SpriteWorld             theSpriteWorld)                        THREEWORDINLINE(0x303C, 0x023F, 0xAAAA);
  2033.  
  2034. EXTERN_API( OSErr )
  2035. NewSprite                        (Sprite *                newSprite,
  2036.                                  SpriteWorld             itsSpriteWorld,
  2037.                                  ImageDescriptionHandle  idh,
  2038.                                  Ptr                     imageDataPtr,
  2039.                                  MatrixRecord *            matrix,
  2040.                                  Boolean                 visible,
  2041.                                  short                     layer)                                THREEWORDINLINE(0x303C, 0x0240, 0xAAAA);
  2042.  
  2043. EXTERN_API( void )
  2044. DisposeSprite                    (Sprite                 theSprite)                            THREEWORDINLINE(0x303C, 0x0241, 0xAAAA);
  2045.  
  2046. EXTERN_API( void )
  2047. InvalidateSprite                (Sprite                 theSprite)                            THREEWORDINLINE(0x303C, 0x0242, 0xAAAA);
  2048.  
  2049. EXTERN_API( OSErr )
  2050. SetSpriteProperty                (Sprite                 theSprite,
  2051.                                  long                     propertyType,
  2052.                                  void *                    propertyValue)                        THREEWORDINLINE(0x303C, 0x0243, 0xAAAA);
  2053.  
  2054. EXTERN_API( OSErr )
  2055. GetSpriteProperty                (Sprite                 theSprite,
  2056.                                  long                     propertyType,
  2057.                                  void *                    propertyValue)                        THREEWORDINLINE(0x303C, 0x0244, 0xAAAA);
  2058.  
  2059. /*****
  2060.     QT Atom Data Support
  2061. *****/
  2062.  
  2063. enum {
  2064.     kParentAtomIsContainer        = 0
  2065. };
  2066.  
  2067. /* create and dispose QTAtomContainer objects*/
  2068.  
  2069. EXTERN_API( OSErr )
  2070. QTNewAtomContainer                (QTAtomContainer *        atomData)                            THREEWORDINLINE(0x303C, 0x020C, 0xAAAA);
  2071.  
  2072. EXTERN_API( OSErr )
  2073. QTDisposeAtomContainer            (QTAtomContainer         atomData)                            THREEWORDINLINE(0x303C, 0x020D, 0xAAAA);
  2074.  
  2075. /* locating nested atoms within QTAtomContainer container*/
  2076. EXTERN_API( QTAtomType )
  2077. QTGetNextChildType                (QTAtomContainer         container,
  2078.                                  QTAtom                 parentAtom,
  2079.                                  QTAtomType             currentChildType)                    THREEWORDINLINE(0x303C, 0x020E, 0xAAAA);
  2080.  
  2081. EXTERN_API( short )
  2082. QTCountChildrenOfType            (QTAtomContainer         container,
  2083.                                  QTAtom                 parentAtom,
  2084.                                  QTAtomType             childType)                            THREEWORDINLINE(0x303C, 0x020F, 0xAAAA);
  2085.  
  2086. EXTERN_API( QTAtom )
  2087. QTFindChildByIndex                (QTAtomContainer         container,
  2088.                                  QTAtom                 parentAtom,
  2089.                                  QTAtomType             atomType,
  2090.                                  short                     index,
  2091.                                  QTAtomID *                id)                                    THREEWORDINLINE(0x303C, 0x0210, 0xAAAA);
  2092.  
  2093. EXTERN_API( QTAtom )
  2094. QTFindChildByID                    (QTAtomContainer         container,
  2095.                                  QTAtom                 parentAtom,
  2096.                                  QTAtomType             atomType,
  2097.                                  QTAtomID                 id,
  2098.                                  short *                index)                                THREEWORDINLINE(0x303C, 0x021D, 0xAAAA);
  2099.  
  2100. EXTERN_API( OSErr )
  2101. QTNextChildAnyType                (QTAtomContainer         container,
  2102.                                  QTAtom                 parentAtom,
  2103.                                  QTAtom                 currentChild,
  2104.                                  QTAtom *                nextChild)                            THREEWORDINLINE(0x303C, 0x0200, 0xAAAA);
  2105.  
  2106. /* set a leaf atom's data*/
  2107. EXTERN_API( OSErr )
  2108. QTSetAtomData                    (QTAtomContainer         container,
  2109.                                  QTAtom                 atom,
  2110.                                  long                     dataSize,
  2111.                                  void *                    atomData)                            THREEWORDINLINE(0x303C, 0x0211, 0xAAAA);
  2112.  
  2113. /* extracting data*/
  2114. EXTERN_API( OSErr )
  2115. QTCopyAtomDataToHandle            (QTAtomContainer         container,
  2116.                                  QTAtom                 atom,
  2117.                                  Handle                 targetHandle)                        THREEWORDINLINE(0x303C, 0x0212, 0xAAAA);
  2118.  
  2119. EXTERN_API( OSErr )
  2120. QTCopyAtomDataToPtr                (QTAtomContainer         container,
  2121.                                  QTAtom                 atom,
  2122.                                  Boolean                 sizeOrLessOK,
  2123.                                  long                     size,
  2124.                                  void *                    targetPtr,
  2125.                                  long *                    actualSize)                            THREEWORDINLINE(0x303C, 0x0213, 0xAAAA);
  2126.  
  2127. EXTERN_API( OSErr )
  2128. QTGetAtomTypeAndID                (QTAtomContainer         container,
  2129.                                  QTAtom                 atom,
  2130.                                  QTAtomType *            atomType,
  2131.                                  QTAtomID *                id)                                    THREEWORDINLINE(0x303C, 0x0232, 0xAAAA);
  2132.  
  2133. /* extract a copy of an atom and all of it's children, caller disposes*/
  2134. EXTERN_API( OSErr )
  2135. QTCopyAtom                        (QTAtomContainer         container,
  2136.                                  QTAtom                 atom,
  2137.                                  QTAtomContainer *        targetContainer)                    THREEWORDINLINE(0x303C, 0x0214, 0xAAAA);
  2138.  
  2139. /* obtaining direct reference to atom data*/
  2140. EXTERN_API( OSErr )
  2141. QTLockContainer                    (QTAtomContainer         container)                            THREEWORDINLINE(0x303C, 0x0215, 0xAAAA);
  2142.  
  2143. EXTERN_API( OSErr )
  2144. QTGetAtomDataPtr                (QTAtomContainer         container,
  2145.                                  QTAtom                 atom,
  2146.                                  long *                    dataSize,
  2147.                                  Ptr *                    atomData)                            THREEWORDINLINE(0x303C, 0x0216, 0xAAAA);
  2148.  
  2149. EXTERN_API( OSErr )
  2150. QTUnlockContainer                (QTAtomContainer         container)                            THREEWORDINLINE(0x303C, 0x0217, 0xAAAA);
  2151.  
  2152. /*
  2153.    building QTAtomContainer trees
  2154.    creates and inserts new atom at specified index, existing atoms at or after index are moved toward end of list
  2155.    used for Top-Down tree creation
  2156. */
  2157. EXTERN_API( OSErr )
  2158. QTInsertChild                    (QTAtomContainer         container,
  2159.                                  QTAtom                 parentAtom,
  2160.                                  QTAtomType             atomType,
  2161.                                  QTAtomID                 id,
  2162.                                  short                     index,
  2163.                                  long                     dataSize,
  2164.                                  void *                    data,
  2165.                                  QTAtom *                newAtom)                            THREEWORDINLINE(0x303C, 0x0218, 0xAAAA);
  2166.  
  2167. /* inserts children from childrenContainer as children of parentAtom*/
  2168. EXTERN_API( OSErr )
  2169. QTInsertChildren                (QTAtomContainer         container,
  2170.                                  QTAtom                 parentAtom,
  2171.                                  QTAtomContainer         childrenContainer)                    THREEWORDINLINE(0x303C, 0x0219, 0xAAAA);
  2172.  
  2173. /* destruction*/
  2174. EXTERN_API( OSErr )
  2175. QTRemoveAtom                    (QTAtomContainer         container,
  2176.                                  QTAtom                 atom)                                THREEWORDINLINE(0x303C, 0x021A, 0xAAAA);
  2177.  
  2178. EXTERN_API( OSErr )
  2179. QTRemoveChildren                (QTAtomContainer         container,
  2180.                                  QTAtom                 atom)                                THREEWORDINLINE(0x303C, 0x021B, 0xAAAA);
  2181.  
  2182. /* replacement must be same type as target*/
  2183. EXTERN_API( OSErr )
  2184. QTReplaceAtom                    (QTAtomContainer         targetContainer,
  2185.                                  QTAtom                 targetAtom,
  2186.                                  QTAtomContainer         replacementContainer,
  2187.                                  QTAtom                 replacementAtom)                    THREEWORDINLINE(0x303C, 0x021C, 0xAAAA);
  2188.  
  2189. EXTERN_API( OSErr )
  2190. QTSwapAtoms                        (QTAtomContainer         container,
  2191.                                  QTAtom                 atom1,
  2192.                                  QTAtom                 atom2)                                THREEWORDINLINE(0x303C, 0x01FF, 0xAAAA);
  2193.  
  2194. EXTERN_API( OSErr )
  2195. QTSetAtomID                        (QTAtomContainer         container,
  2196.                                  QTAtom                 atom,
  2197.                                  QTAtomID                 newID)                                THREEWORDINLINE(0x303C, 0x0231, 0xAAAA);
  2198.  
  2199. EXTERN_API( OSErr )
  2200. SetMediaPropertyAtom            (Media                     theMedia,
  2201.                                  QTAtomContainer         propertyAtom)                        THREEWORDINLINE(0x303C, 0x022E, 0xAAAA);
  2202.  
  2203. EXTERN_API( OSErr )
  2204. GetMediaPropertyAtom            (Media                     theMedia,
  2205.                                  QTAtomContainer *        propertyAtom)                        THREEWORDINLINE(0x303C, 0x022F, 0xAAAA);
  2206.  
  2207.  
  2208. /*****
  2209.     QT International Text Atom Support
  2210. *****/
  2211.  
  2212. enum {
  2213.     kITextRemoveEverythingBut    = 0 << 1,
  2214.     kITextRemoveLeaveSuggestedAlternate = 1 << 1
  2215. };
  2216.  
  2217.  
  2218. enum {
  2219.     kITextAtomType                = FOUR_CHAR_CODE('itxt'),
  2220.     kITextStringAtomType        = FOUR_CHAR_CODE('text')
  2221. };
  2222.  
  2223. EXTERN_API( OSErr )
  2224. ITextAddString                    (QTAtomContainer         container,
  2225.                                  QTAtom                 parentAtom,
  2226.                                  RegionCode             theRegionCode,
  2227.                                  ConstStr255Param         theString)                            THREEWORDINLINE(0x303C, 0x027A, 0xAAAA);
  2228.  
  2229. EXTERN_API( OSErr )
  2230. ITextRemoveString                (QTAtomContainer         container,
  2231.                                  QTAtom                 parentAtom,
  2232.                                  RegionCode             theRegionCode,
  2233.                                  long                     flags)                                THREEWORDINLINE(0x303C, 0x027B, 0xAAAA);
  2234.  
  2235. EXTERN_API( OSErr )
  2236. ITextGetString                    (QTAtomContainer         container,
  2237.                                  QTAtom                 parentAtom,
  2238.                                  RegionCode             requestedRegion,
  2239.                                  RegionCode *            foundRegion,
  2240.                                  StringPtr                 theString)                            THREEWORDINLINE(0x303C, 0x027C, 0xAAAA);
  2241.  
  2242.  
  2243. /*************************
  2244. * modifier track types
  2245. **************************/
  2246.  
  2247. enum {
  2248.     kTrackModifierInput            = 0x696E,                        /* is really 'in'*/
  2249.     kTrackModifierType            = 0x7479,                        /* is really 'ty'*/
  2250.     kTrackModifierReference        = FOUR_CHAR_CODE('ssrc'),
  2251.     kTrackModifierObjectID        = FOUR_CHAR_CODE('obid'),
  2252.     kTrackModifierInputName        = FOUR_CHAR_CODE('name')
  2253. };
  2254.  
  2255.  
  2256. enum {
  2257.     kInputMapSubInputID            = FOUR_CHAR_CODE('subi')
  2258. };
  2259.  
  2260.  
  2261. enum {
  2262.     kTrackModifierTypeMatrix    = 1,
  2263.     kTrackModifierTypeClip        = 2,
  2264.     kTrackModifierTypeGraphicsMode = 5,
  2265.     kTrackModifierTypeVolume    = 3,
  2266.     kTrackModifierTypeBalance    = 4,
  2267.     kTrackModifierTypeImage        = FOUR_CHAR_CODE('vide'),        /* was kTrackModifierTypeSpriteImage*/
  2268.     kTrackModifierObjectMatrix    = 6,
  2269.     kTrackModifierObjectGraphicsMode = 7,
  2270.     kTrackModifierType3d4x4Matrix = 8,
  2271.     kTrackModifierCameraData    = 9,
  2272.     kTrackModifierSoundLocalizationData = 10
  2273. };
  2274.  
  2275. struct ModifierTrackGraphicsModeRecord {
  2276.     long                             graphicsMode;
  2277.     RGBColor                         opColor;
  2278. };
  2279. typedef struct ModifierTrackGraphicsModeRecord ModifierTrackGraphicsModeRecord;
  2280.  
  2281.  
  2282. /*************************
  2283. * tween track types
  2284. **************************/
  2285.  
  2286. enum {
  2287.     kTweenTypeShort                = 1,
  2288.     kTweenTypeLong                = 2,
  2289.     kTweenTypeFixed                = 3,
  2290.     kTweenTypePoint                = 4,
  2291.     kTweenTypeQDRect            = 5,
  2292.     kTweenTypeQDRegion            = 6,
  2293.     kTweenTypeMatrix            = 7,
  2294.     kTweenTypeRGBColor            = 8,
  2295.     kTweenTypeGraphicsModeWithRGBColor = 9,
  2296.     kTweenType3dScale            = FOUR_CHAR_CODE('3sca'),
  2297.     kTweenType3dTranslate        = FOUR_CHAR_CODE('3tra'),
  2298.     kTweenType3dRotate            = FOUR_CHAR_CODE('3rot'),
  2299.     kTweenType3dRotateAboutPoint = FOUR_CHAR_CODE('3rap'),
  2300.     kTweenType3dRotateAboutAxis    = FOUR_CHAR_CODE('3rax'),
  2301.     kTweenType3dQuaternion        = FOUR_CHAR_CODE('3qua'),
  2302.     kTweenType3dMatrix            = FOUR_CHAR_CODE('3mat'),
  2303.     kTweenType3dCameraData        = FOUR_CHAR_CODE('3cam'),
  2304.     kTweenType3dSoundLocalizationData = FOUR_CHAR_CODE('3slc')
  2305. };
  2306.  
  2307.  
  2308. enum {
  2309.     kTweenEntry                    = FOUR_CHAR_CODE('twen'),
  2310.     kTweenData                    = FOUR_CHAR_CODE('data'),
  2311.     kTweenType                    = FOUR_CHAR_CODE('twnt'),
  2312.     kTweenStartOffset            = FOUR_CHAR_CODE('twst'),
  2313.     kTweenDuration                = FOUR_CHAR_CODE('twdu'),
  2314.     kTween3dInitialCondition    = FOUR_CHAR_CODE('icnd'),
  2315.     kTweenInterpolationStyle    = FOUR_CHAR_CODE('isty'),
  2316.     kTweenRegionData            = FOUR_CHAR_CODE('qdrg'),
  2317.     kTweenPictureData            = FOUR_CHAR_CODE('PICT')
  2318. };
  2319.  
  2320.  
  2321.  
  2322. #if OLDROUTINENAMES
  2323. #include <MediaHandlers.h>
  2324.  
  2325. /*************************
  2326. * Video Media routines
  2327. **************************/
  2328.  
  2329. #define GetVideoMediaGraphicsMode        MediaGetGraphicsMode
  2330. #define SetVideoMediaGraphicsMode        MediaSetGraphicsMode
  2331.  
  2332. // use these two routines at your own peril
  2333. #define ResetVideoMediaStatistics        VideoMediaResetStatistics
  2334. #define GetVideoMediaStatistics            VideoMediaGetStatistics
  2335.  
  2336. /*************************
  2337. * Sound Media routines
  2338. **************************/
  2339.  
  2340. #define GetSoundMediaBalance            MediaGetSoundBalance
  2341. #define SetSoundMediaBalance            MediaSetSoundBalance
  2342.  
  2343. /*************************
  2344. * Text Media routines
  2345. **************************/
  2346.  
  2347. #define SetTextProc            TextMediaSetTextProc
  2348. #define AddTextSample        TextMediaAddTextSample
  2349. #define AddTESample            TextMediaAddTESample
  2350. #define AddHiliteSample        TextMediaAddHiliteSample
  2351. #define FindNextText        TextMediaFindNextText
  2352. #define HiliteTextSample    TextMediaHiliteTextSample
  2353. #define SetTextSampleData    TextMediaSetTextSampleData
  2354.  
  2355. /*************************
  2356. * Sprite Media routines
  2357. **************************/
  2358.  
  2359. #define SetSpriteMediaSpriteProperty    SpriteMediaSetProperty
  2360. #define GetSpriteMediaSpriteProperty    SpriteMediaGetProperty
  2361. #define HitTestSpriteMedia                SpriteMediaHitTestSprites
  2362. #define CountSpriteMediaSprites            SpriteMediaCountSprites
  2363. #define CountSpriteMediaImages            SpriteMediaCountImages
  2364. #define GetSpriteMediaIndImageDescription    SpriteMediaGetIndImageDescription
  2365. #define GetDisplayedSampleNumber        SpriteMediaGetDisplayedSampleNumber
  2366. #endif /* OLDROUTINENAMES */
  2367.  
  2368.  
  2369.  
  2370.  
  2371. enum {
  2372.     internalComponentErr        = -2070,
  2373.     notImplementedMusicOSErr    = -2071,
  2374.     cantSendToSynthesizerOSErr    = -2072,
  2375.     cantReceiveFromSynthesizerOSErr = -2073,
  2376.     illegalVoiceAllocationOSErr    = -2074,
  2377.     illegalPartOSErr            = -2075,
  2378.     illegalChannelOSErr            = -2076,
  2379.     illegalKnobOSErr            = -2077,
  2380.     illegalKnobValueOSErr        = -2078,
  2381.     illegalInstrumentOSErr        = -2079,
  2382.     illegalControllerOSErr        = -2080,
  2383.     midiManagerAbsentOSErr        = -2081,
  2384.     synthesizerNotRespondingOSErr = -2082,
  2385.     synthesizerOSErr            = -2083,
  2386.     illegalNoteChannelOSErr        = -2084,
  2387.     noteChannelNotAllocatedOSErr = -2085,
  2388.     tunePlayerFullOSErr            = -2086,
  2389.     tuneParseOSErr                = -2087
  2390. };
  2391.  
  2392.  
  2393.  
  2394. /*************************
  2395. * Video Media routines
  2396. **************************/
  2397.  
  2398.  
  2399.  
  2400. enum {
  2401.     videoFlagDontLeanAhead        = 1L << 0
  2402. };
  2403.  
  2404.  
  2405.  
  2406.  
  2407. /* use these two routines at your own peril*/
  2408. EXTERN_API( ComponentResult )
  2409. VideoMediaResetStatistics        (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0105, 0x7000, 0xA82A);
  2410.  
  2411. EXTERN_API( ComponentResult )
  2412. VideoMediaGetStatistics            (MediaHandler             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418. /*************************
  2419. * Text Media routines
  2420. **************************/
  2421.  
  2422.  
  2423.  
  2424. /* Return displayFlags for TextProc */
  2425.  
  2426. enum {
  2427.     txtProcDefaultDisplay        = 0,                            /*    Use the media's default*/
  2428.     txtProcDontDisplay            = 1,                            /*    Don't display the text*/
  2429.     txtProcDoDisplay            = 2                                /*    Do display the text*/
  2430. };
  2431.  
  2432. EXTERN_API( ComponentResult )
  2433. TextMediaSetTextProc            (MediaHandler             mh,
  2434.                                  TextMediaUPP             TextProc,
  2435.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
  2436.  
  2437. EXTERN_API( ComponentResult )
  2438. TextMediaAddTextSample            (MediaHandler             mh,
  2439.                                  Ptr                     text,
  2440.                                  unsigned long             size,
  2441.                                  short                     fontNumber,
  2442.                                  short                     fontSize,
  2443.                                  Style                     textFace,
  2444.                                  RGBColor *                textColor,
  2445.                                  RGBColor *                backColor,
  2446.                                  short                     textJustification,
  2447.                                  Rect *                    textBox,
  2448.                                  long                     displayFlags,
  2449.                                  TimeValue                 scrollDelay,
  2450.                                  short                     hiliteStart,
  2451.                                  short                     hiliteEnd,
  2452.                                  RGBColor *                rgbHiliteColor,
  2453.                                  TimeValue                 duration,
  2454.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0034, 0x0102, 0x7000, 0xA82A);
  2455.  
  2456. EXTERN_API( ComponentResult )
  2457. TextMediaAddTESample            (MediaHandler             mh,
  2458.                                  TEHandle                 hTE,
  2459.                                  RGBColor *                backColor,
  2460.                                  short                     textJustification,
  2461.                                  Rect *                    textBox,
  2462.                                  long                     displayFlags,
  2463.                                  TimeValue                 scrollDelay,
  2464.                                  short                     hiliteStart,
  2465.                                  short                     hiliteEnd,
  2466.                                  RGBColor *                rgbHiliteColor,
  2467.                                  TimeValue                 duration,
  2468.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0026, 0x0103, 0x7000, 0xA82A);
  2469.  
  2470. EXTERN_API( ComponentResult )
  2471. TextMediaAddHiliteSample        (MediaHandler             mh,
  2472.                                  short                     hiliteStart,
  2473.                                  short                     hiliteEnd,
  2474.                                  RGBColor *                rgbHiliteColor,
  2475.                                  TimeValue                 duration,
  2476.                                  TimeValue *            sampleTime)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0104, 0x7000, 0xA82A);
  2477.  
  2478.  
  2479. enum {
  2480.     findTextEdgeOK                = 1 << 0,                        /* Okay to find text at specified sample time*/
  2481.     findTextCaseSensitive        = 1 << 1,                        /* Case sensitive search*/
  2482.     findTextReverseSearch        = 1 << 2,                        /* Search from sampleTime backwards*/
  2483.     findTextWrapAround            = 1 << 3,                        /* Wrap search when beginning or end of movie is hit*/
  2484.     findTextUseOffset            = 1 << 4                        /* Begin search at the given character offset into sample rather than edge*/
  2485. };
  2486.  
  2487. EXTERN_API( ComponentResult )
  2488. TextMediaFindNextText            (MediaHandler             mh,
  2489.                                  Ptr                     text,
  2490.                                  long                     size,
  2491.                                  short                     findFlags,
  2492.                                  TimeValue                 startTime,
  2493.                                  TimeValue *            foundTime,
  2494.                                  TimeValue *            foundDuration,
  2495.                                  long *                    offset)                                FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
  2496.  
  2497. EXTERN_API( ComponentResult )
  2498. TextMediaHiliteTextSample        (MediaHandler             mh,
  2499.                                  TimeValue                 sampleTime,
  2500.                                  short                     hiliteStart,
  2501.                                  short                     hiliteEnd,
  2502.                                  RGBColor *                rgbHiliteColor)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0106, 0x7000, 0xA82A);
  2503.  
  2504.  
  2505. enum {
  2506.     dropShadowOffsetType        = FOUR_CHAR_CODE('drpo'),
  2507.     dropShadowTranslucencyType    = FOUR_CHAR_CODE('drpt')
  2508. };
  2509.  
  2510. EXTERN_API( ComponentResult )
  2511. TextMediaSetTextSampleData        (MediaHandler             mh,
  2512.                                  void *                    data,
  2513.                                  OSType                 dataType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  2514.  
  2515.  
  2516.  
  2517.  
  2518. /*************************
  2519. * Sprite Media routines
  2520. **************************/
  2521. /* flags for HitTestSpriteMedia */
  2522.  
  2523. enum {
  2524.     spriteHitTestBounds            = 1L << 0,                        /*    point must only be within sprite's bounding box*/
  2525.     spriteHitTestImage            = 1L << 1                        /*  point must be within the shape of the sprite's image*/
  2526. };
  2527.  
  2528. /* atom types for sprite media */
  2529.  
  2530. enum {
  2531.     kSpriteAtomType                = FOUR_CHAR_CODE('sprt'),
  2532.     kSpriteImagesContainerAtomType = FOUR_CHAR_CODE('imct'),
  2533.     kSpriteImageAtomType        = FOUR_CHAR_CODE('imag'),
  2534.     kSpriteImageDataAtomType    = FOUR_CHAR_CODE('imda'),
  2535.     kSpriteSharedDataAtomType    = FOUR_CHAR_CODE('dflt'),
  2536.     kSpriteNameAtomType            = FOUR_CHAR_CODE('name')
  2537. };
  2538.  
  2539. EXTERN_API( ComponentResult )
  2540. SpriteMediaSetProperty            (MediaHandler             mh,
  2541.                                  short                     spriteIndex,
  2542.                                  long                     propertyType,
  2543.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000A, 0x0101, 0x7000, 0xA82A);
  2544.  
  2545. EXTERN_API( ComponentResult )
  2546. SpriteMediaGetProperty            (MediaHandler             mh,
  2547.                                  short                     spriteIndex,
  2548.                                  long                     propertyType,
  2549.                                  void *                    propertyValue)                        FIVEWORDINLINE(0x2F3C, 0x000A, 0x0102, 0x7000, 0xA82A);
  2550.  
  2551. EXTERN_API( ComponentResult )
  2552. SpriteMediaHitTestSprites        (MediaHandler             mh,
  2553.                                  long                     flags,
  2554.                                  Point                     loc,
  2555.                                  short *                spriteHitIndex)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  2556.  
  2557. EXTERN_API( ComponentResult )
  2558. SpriteMediaCountSprites            (MediaHandler             mh,
  2559.                                  short *                numSprites)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  2560.  
  2561. EXTERN_API( ComponentResult )
  2562. SpriteMediaCountImages            (MediaHandler             mh,
  2563.                                  short *                numImages)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  2564.  
  2565. EXTERN_API( ComponentResult )
  2566. SpriteMediaGetIndImageDescription (MediaHandler         mh,
  2567.                                  short                     imageIndex,
  2568.                                  ImageDescriptionHandle  imageDescription)                    FIVEWORDINLINE(0x2F3C, 0x0006, 0x0106, 0x7000, 0xA82A);
  2569.  
  2570. EXTERN_API( ComponentResult )
  2571. SpriteMediaGetDisplayedSampleNumber (MediaHandler         mh,
  2572.                                  long *                    sampleNum)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  2573.  
  2574.  
  2575. /*************************
  2576. * 3D Media routines
  2577. **************************/
  2578. EXTERN_API( ComponentResult )
  2579. Media3DGetNamedObjectList        (MediaHandler             mh,
  2580.                                  QTAtomContainer *        objectList)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  2581.  
  2582. EXTERN_API( ComponentResult )
  2583. Media3DGetRendererList            (MediaHandler             mh,
  2584.                                  QTAtomContainer *        rendererList)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  2585.  
  2586.  
  2587.  
  2588. /****************************************
  2589. *                                        *
  2590. *      M O V I E   C O N T R O L L E R        *
  2591. *                                        *
  2592. ****************************************/
  2593.  
  2594. enum {
  2595.     MovieControllerComponentType = FOUR_CHAR_CODE('play')
  2596. };
  2597.  
  2598.  
  2599. typedef ComponentInstance                 MovieController;
  2600.  
  2601. enum {
  2602.     mcActionIdle                = 1,                            /* no param*/
  2603.     mcActionDraw                = 2,                            /* param is WindowPtr*/
  2604.     mcActionActivate            = 3,                            /* no param*/
  2605.     mcActionDeactivate            = 4,                            /* no param*/
  2606.     mcActionMouseDown            = 5,                            /* param is pointer to EventRecord*/
  2607.     mcActionKey                    = 6,                            /* param is pointer to EventRecord*/
  2608.     mcActionPlay                = 8,                            /* param is Fixed, play rate*/
  2609.     mcActionGoToTime            = 12,                            /* param is TimeRecord*/
  2610.     mcActionSetVolume            = 14,                            /* param is a short*/
  2611.     mcActionGetVolume            = 15,                            /* param is pointer to a short*/
  2612.     mcActionStep                = 18,                            /* param is number of steps (short)*/
  2613.     mcActionSetLooping            = 21,                            /* param is Boolean*/
  2614.     mcActionGetLooping            = 22,                            /* param is pointer to a Boolean*/
  2615.     mcActionSetLoopIsPalindrome    = 23,                            /* param is Boolean*/
  2616.     mcActionGetLoopIsPalindrome    = 24,                            /* param is pointer to a Boolean*/
  2617.     mcActionSetGrowBoxBounds    = 25,                            /* param is a Rect*/
  2618.     mcActionControllerSizeChanged = 26,                            /* no param*/
  2619.     mcActionSetSelectionBegin    = 29,                            /* param is TimeRecord*/
  2620.     mcActionSetSelectionDuration = 30,                            /* param is TimeRecord, action only taken on set-duration*/
  2621.     mcActionSetKeysEnabled        = 32,                            /* param is Boolean*/
  2622.     mcActionGetKeysEnabled        = 33,                            /* param is pointer to Boolean*/
  2623.     mcActionSetPlaySelection    = 34,                            /* param is Boolean*/
  2624.     mcActionGetPlaySelection    = 35,                            /* param is pointer to Boolean*/
  2625.     mcActionSetUseBadge            = 36,                            /* param is Boolean*/
  2626.     mcActionGetUseBadge            = 37,                            /* param is pointer to Boolean*/
  2627.     mcActionSetFlags            = 38,                            /* param is long of flags*/
  2628.     mcActionGetFlags            = 39,                            /* param is pointer to a long of flags*/
  2629.     mcActionSetPlayEveryFrame    = 40,                            /* param is Boolean*/
  2630.     mcActionGetPlayEveryFrame    = 41,                            /* param is pointer to Boolean*/
  2631.     mcActionGetPlayRate            = 42,                            /* param is pointer to Fixed*/
  2632.     mcActionShowBalloon            = 43,                            /* param is a pointer to a boolean. set to false to stop balloon*/
  2633.     mcActionBadgeClick            = 44,                            /* param is pointer to Boolean. set to false to ignore click*/
  2634.     mcActionMovieClick            = 45,                            /* param is pointer to event record. change “what” to nullEvt to kill click*/
  2635.     mcActionSuspend                = 46,                            /* no param*/
  2636.     mcActionResume                = 47,                            /* no param*/
  2637.     mcActionSetControllerKeysEnabled = 48,                        /* param is Boolean*/
  2638.     mcActionGetTimeSliderRect    = 49,                            /* param is pointer to rect*/
  2639.     mcActionMovieEdited            = 50,                            /* no param*/
  2640.     mcActionGetDragEnabled        = 51,                            /* param is pointer to Boolean*/
  2641.     mcActionSetDragEnabled        = 52,                            /* param is Boolean*/
  2642.     mcActionGetSelectionBegin    = 53,                            /* param is TimeRecord*/
  2643.     mcActionGetSelectionDuration = 54,                            /* param is TimeRecord*/
  2644.     mcActionPrerollAndPlay        = 55,                            /* param is Fixed, play rate*/
  2645.     mcActionGetCursorSettingEnabled = 56,                        /* param is pointer to Boolean*/
  2646.     mcActionSetCursorSettingEnabled = 57,                        /* param is Boolean*/
  2647.     mcActionSetColorTable        = 58                            /* param is CTabHandle*/
  2648. };
  2649.  
  2650. typedef short                             mcAction;
  2651.  
  2652. enum {
  2653.     mcFlagSuppressMovieFrame    = 1 << 0,
  2654.     mcFlagSuppressStepButtons    = 1 << 1,
  2655.     mcFlagSuppressSpeakerButton    = 1 << 2,
  2656.     mcFlagsUseWindowPalette        = 1 << 3,
  2657.     mcFlagsDontInvalidate        = 1 << 4
  2658. };
  2659.  
  2660.  
  2661.  
  2662. enum {
  2663.     mcPositionDontInvalidate    = 1 << 5
  2664. };
  2665.  
  2666. typedef unsigned long                     mcFlags;
  2667. typedef CALLBACK_API( Boolean , MCActionFilterProcPtr )(MovieController mc, short *action, void *params);
  2668. typedef CALLBACK_API( Boolean , MCActionFilterWithRefConProcPtr )(MovieController mc, short action, void *params, long refCon);
  2669. typedef STACK_UPP_TYPE(MCActionFilterProcPtr)                     MCActionFilterUPP;
  2670. typedef STACK_UPP_TYPE(MCActionFilterWithRefConProcPtr)         MCActionFilterWithRefConUPP;
  2671. /*
  2672.     menu related stuff
  2673. */
  2674.  
  2675. enum {
  2676.     mcInfoUndoAvailable            = 1 << 0,
  2677.     mcInfoCutAvailable            = 1 << 1,
  2678.     mcInfoCopyAvailable            = 1 << 2,
  2679.     mcInfoPasteAvailable        = 1 << 3,
  2680.     mcInfoClearAvailable        = 1 << 4,
  2681.     mcInfoHasSound                = 1 << 5,
  2682.     mcInfoIsPlaying                = 1 << 6,
  2683.     mcInfoIsLooping                = 1 << 7,
  2684.     mcInfoIsInPalindrome        = 1 << 8,
  2685.     mcInfoEditingEnabled        = 1 << 9,
  2686.     mcInfoMovieIsInteractive    = 1 << 10
  2687. };
  2688.  
  2689. /* menu item codes*/
  2690.  
  2691. enum {
  2692.     mcMenuUndo                    = 1,
  2693.     mcMenuCut                    = 3,
  2694.     mcMenuCopy                    = 4,
  2695.     mcMenuPaste                    = 5,
  2696.     mcMenuClear                    = 6
  2697. };
  2698.  
  2699.  
  2700.  
  2701.  
  2702. /* target management */
  2703. EXTERN_API( ComponentResult )
  2704. MCSetMovie                        (MovieController         mc,
  2705.                                  Movie                     theMovie,
  2706.                                  WindowPtr                 movieWindow,
  2707.                                  Point                     where)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0002, 0x7000, 0xA82A);
  2708.  
  2709. EXTERN_API( Movie )
  2710. MCGetIndMovie                    (MovieController         mc,
  2711.                                  short                     index)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A);
  2712.  
  2713.  
  2714. #define MCGetMovie(mc) MCGetIndMovie(mc, 0)
  2715. EXTERN_API( ComponentResult )
  2716. MCRemoveAllMovies                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  2717.  
  2718. EXTERN_API( ComponentResult )
  2719. MCRemoveAMovie                    (MovieController         mc,
  2720.                                  Movie                     m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  2721.  
  2722. EXTERN_API( ComponentResult )
  2723. MCRemoveMovie                    (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  2724.  
  2725. /* event handling etc. */
  2726. EXTERN_API( ComponentResult )
  2727. MCIsPlayerEvent                    (MovieController         mc,
  2728.                                  const EventRecord *    e)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  2729.  
  2730. /* obsolete. use MCSetActionFilterWithRefCon instead. */
  2731. EXTERN_API( ComponentResult )
  2732. MCSetActionFilter                (MovieController         mc,
  2733.                                  MCActionFilterUPP         blob)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  2734.  
  2735. /*
  2736.     proc is of the form:
  2737.         Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
  2738.     proc returns TRUE if it handles the action, FALSE if not
  2739.     action is passed as a VAR so that it could be changed by filter
  2740.     this is consistent with the current dialog manager stuff
  2741.     params is any potential parameters that go with the action
  2742.         such as set playback rate to xxx.
  2743. */
  2744. EXTERN_API( ComponentResult )
  2745. MCDoAction                        (MovieController         mc,
  2746.                                  short                     action,
  2747.                                  void *                    params)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0009, 0x7000, 0xA82A);
  2748.  
  2749. /* state type things */
  2750. EXTERN_API( ComponentResult )
  2751. MCSetControllerAttached            (MovieController         mc,
  2752.                                  Boolean                 attach)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  2753.  
  2754. EXTERN_API( ComponentResult )
  2755. MCIsControllerAttached            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000B, 0x7000, 0xA82A);
  2756.  
  2757. EXTERN_API( ComponentResult )
  2758. MCSetControllerPort                (MovieController         mc,
  2759.                                  CGrafPtr                 gp)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  2760.  
  2761. EXTERN_API( CGrafPtr )
  2762. MCGetControllerPort                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  2763.  
  2764. EXTERN_API( ComponentResult )
  2765. MCSetVisible                    (MovieController         mc,
  2766.                                  Boolean                 visible)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x000E, 0x7000, 0xA82A);
  2767.  
  2768. EXTERN_API( ComponentResult )
  2769. MCGetVisible                    (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000F, 0x7000, 0xA82A);
  2770.  
  2771. EXTERN_API( ComponentResult )
  2772. MCGetControllerBoundsRect        (MovieController         mc,
  2773.                                  Rect *                    bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  2774.  
  2775. EXTERN_API( ComponentResult )
  2776. MCSetControllerBoundsRect        (MovieController         mc,
  2777.                                  const Rect *            bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
  2778.  
  2779. EXTERN_API( RgnHandle )
  2780. MCGetControllerBoundsRgn        (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
  2781.  
  2782. EXTERN_API( RgnHandle )
  2783. MCGetWindowRgn                    (MovieController         mc,
  2784.                                  WindowPtr                 w)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  2785.  
  2786.  
  2787. /* other stuff */
  2788. EXTERN_API( ComponentResult )
  2789. MCMovieChanged                    (MovieController         mc,
  2790.                                  Movie                     m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  2791.  
  2792.  
  2793. /*
  2794.     called when the app has changed thing about the movie (like bounding rect) or rate. So that we
  2795.         can update our graphical (and internal) state accordingly.
  2796. */
  2797. EXTERN_API( ComponentResult )
  2798. MCSetDuration                    (MovieController         mc,
  2799.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  2800.  
  2801. /*
  2802.     duration to use for time slider -- will be reset next time MCMovieChanged is called
  2803.         or MCSetMovie is called
  2804. */
  2805. EXTERN_API( TimeValue )
  2806. MCGetCurrentTime                (MovieController         mc,
  2807.                                  TimeScale *            scale)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0016, 0x7000, 0xA82A);
  2808.  
  2809. /*
  2810.     returns the time value and the time scale it is on. if there are no movies, the
  2811.         time scale is passed back as 0. scale is an optional parameter
  2812.  
  2813. */
  2814. EXTERN_API( ComponentResult )
  2815. MCNewAttachedController            (MovieController         mc,
  2816.                                  Movie                     theMovie,
  2817.                                  WindowPtr                 w,
  2818.                                  Point                     where)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  2819.  
  2820. /*
  2821.     makes theMovie the only movie attached to the controller. makes the controller visible.
  2822.     the window and where parameters are passed a long to MCSetMovie and behave as
  2823.     described there
  2824. */
  2825. EXTERN_API( ComponentResult )
  2826. MCDraw                            (MovieController         mc,
  2827.                                  WindowPtr                 w)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  2828.  
  2829. EXTERN_API( ComponentResult )
  2830. MCActivate                        (MovieController         mc,
  2831.                                  WindowPtr                 w,
  2832.                                  Boolean                 activate)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  2833.  
  2834. EXTERN_API( ComponentResult )
  2835. MCIdle                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001A, 0x7000, 0xA82A);
  2836.  
  2837. EXTERN_API( ComponentResult )
  2838. MCKey                            (MovieController         mc,
  2839.                                  SInt8                     key,
  2840.                                  long                     modifiers)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x001B, 0x7000, 0xA82A);
  2841.  
  2842. EXTERN_API( ComponentResult )
  2843. MCClick                            (MovieController         mc,
  2844.                                  WindowPtr                 w,
  2845.                                  Point                     where,
  2846.                                  long                     when,
  2847.                                  long                     modifiers)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x001C, 0x7000, 0xA82A);
  2848.  
  2849.  
  2850. /*
  2851.     calls for editing
  2852. */
  2853. EXTERN_API( ComponentResult )
  2854. MCEnableEditing                    (MovieController         mc,
  2855.                                  Boolean                 enabled)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x001D, 0x7000, 0xA82A);
  2856.  
  2857. EXTERN_API( long )
  2858. MCIsEditingEnabled                (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001E, 0x7000, 0xA82A);
  2859.  
  2860. EXTERN_API( Movie )
  2861. MCCopy                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x001F, 0x7000, 0xA82A);
  2862.  
  2863. EXTERN_API( Movie )
  2864. MCCut                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0020, 0x7000, 0xA82A);
  2865.  
  2866. EXTERN_API( ComponentResult )
  2867. MCPaste                            (MovieController         mc,
  2868.                                  Movie                     srcMovie)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A);
  2869.  
  2870. EXTERN_API( ComponentResult )
  2871. MCClear                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A);
  2872.  
  2873. EXTERN_API( ComponentResult )
  2874. MCUndo                            (MovieController         mc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0023, 0x7000, 0xA82A);
  2875.  
  2876.  
  2877. /*
  2878.  *    somewhat special stuff
  2879.  */
  2880. EXTERN_API( ComponentResult )
  2881. MCPositionController            (MovieController         mc,
  2882.                                  const Rect *            movieRect,
  2883.                                  const Rect *            controllerRect,
  2884.                                  long                     someFlags)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A);
  2885.  
  2886.  
  2887. EXTERN_API( ComponentResult )
  2888. MCGetControllerInfo                (MovieController         mc,
  2889.                                  long *                    someFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  2890.  
  2891.  
  2892.  
  2893. EXTERN_API( ComponentResult )
  2894. MCSetClip                        (MovieController         mc,
  2895.                                  RgnHandle                 theClip,
  2896.                                  RgnHandle                 movieClip)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A);
  2897.  
  2898. EXTERN_API( ComponentResult )
  2899. MCGetClip                        (MovieController         mc,
  2900.                                  RgnHandle *            theClip,
  2901.                                  RgnHandle *            movieClip)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A);
  2902.  
  2903.  
  2904. EXTERN_API( ComponentResult )
  2905. MCDrawBadge                        (MovieController         mc,
  2906.                                  RgnHandle                 movieRgn,
  2907.                                  RgnHandle *            badgeRgn)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A);
  2908.  
  2909. EXTERN_API( ComponentResult )
  2910. MCSetUpEditMenu                    (MovieController         mc,
  2911.                                  long                     modifiers,
  2912.                                  MenuHandle             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A);
  2913.  
  2914. EXTERN_API( ComponentResult )
  2915. MCGetMenuString                    (MovieController         mc,
  2916.                                  long                     modifiers,
  2917.                                  short                     item,
  2918.                                  Str255                 aString)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x002C, 0x7000, 0xA82A);
  2919.  
  2920. EXTERN_API( ComponentResult )
  2921. MCSetActionFilterWithRefCon        (MovieController         mc,
  2922.                                  MCActionFilterWithRefConUPP  blob,
  2923.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
  2924.  
  2925. EXTERN_API( ComponentResult )
  2926. MCPtInController                (MovieController         mc,
  2927.                                  Point                     thePt,
  2928.                                  Boolean *                inController)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A);
  2929.  
  2930. EXTERN_API( ComponentResult )
  2931. MCInvalidate                    (MovieController         mc,
  2932.                                  WindowPtr                 w,
  2933.                                  RgnHandle                 invalidRgn)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x002F, 0x7000, 0xA82A);
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939. /****************************************
  2940. *                                        *
  2941. *          T  I  M  E  B  A  S  E            *
  2942. *                                        *
  2943. ****************************************/
  2944. EXTERN_API( TimeBase )
  2945. NewTimeBase                        (void)                                                        THREEWORDINLINE(0x303C, 0x00A5, 0xAAAA);
  2946.  
  2947. EXTERN_API( void )
  2948. DisposeTimeBase                    (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B6, 0xAAAA);
  2949.  
  2950. EXTERN_API( TimeValue )
  2951. GetTimeBaseTime                    (TimeBase                 tb,
  2952.                                  TimeScale                 s,
  2953.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00A6, 0xAAAA);
  2954.  
  2955. EXTERN_API( void )
  2956. SetTimeBaseTime                    (TimeBase                 tb,
  2957.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00A7, 0xAAAA);
  2958.  
  2959. EXTERN_API( void )
  2960. SetTimeBaseValue                (TimeBase                 tb,
  2961.                                  TimeValue                 t,
  2962.                                  TimeScale                 s)                                    THREEWORDINLINE(0x303C, 0x00A8, 0xAAAA);
  2963.  
  2964. EXTERN_API( Fixed )
  2965. GetTimeBaseRate                    (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00A9, 0xAAAA);
  2966.  
  2967. EXTERN_API( void )
  2968. SetTimeBaseRate                    (TimeBase                 tb,
  2969.                                  Fixed                     r)                                    THREEWORDINLINE(0x303C, 0x00AA, 0xAAAA);
  2970.  
  2971. EXTERN_API( TimeValue )
  2972. GetTimeBaseStartTime            (TimeBase                 tb,
  2973.                                  TimeScale                 s,
  2974.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00AB, 0xAAAA);
  2975.  
  2976. EXTERN_API( void )
  2977. SetTimeBaseStartTime            (TimeBase                 tb,
  2978.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00AC, 0xAAAA);
  2979.  
  2980. EXTERN_API( TimeValue )
  2981. GetTimeBaseStopTime                (TimeBase                 tb,
  2982.                                  TimeScale                 s,
  2983.                                  TimeRecord *            tr)                                    THREEWORDINLINE(0x303C, 0x00AD, 0xAAAA);
  2984.  
  2985. EXTERN_API( void )
  2986. SetTimeBaseStopTime                (TimeBase                 tb,
  2987.                                  const TimeRecord *        tr)                                    THREEWORDINLINE(0x303C, 0x00AE, 0xAAAA);
  2988.  
  2989. EXTERN_API( long )
  2990. GetTimeBaseFlags                (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B1, 0xAAAA);
  2991.  
  2992. EXTERN_API( void )
  2993. SetTimeBaseFlags                (TimeBase                 tb,
  2994.                                  long                     timeBaseFlags)                        THREEWORDINLINE(0x303C, 0x00B2, 0xAAAA);
  2995.  
  2996. EXTERN_API( void )
  2997. SetTimeBaseMasterTimeBase        (TimeBase                 slave,
  2998.                                  TimeBase                 master,
  2999.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x00B4, 0xAAAA);
  3000.  
  3001. EXTERN_API( TimeBase )
  3002. GetTimeBaseMasterTimeBase        (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00AF, 0xAAAA);
  3003.  
  3004. EXTERN_API( void )
  3005. SetTimeBaseMasterClock            (TimeBase                 slave,
  3006.                                  Component                 clockMeister,
  3007.                                  const TimeRecord *        slaveZero)                            THREEWORDINLINE(0x303C, 0x00B3, 0xAAAA);
  3008.  
  3009. EXTERN_API( ComponentInstance )
  3010. GetTimeBaseMasterClock            (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x00B0, 0xAAAA);
  3011.  
  3012. EXTERN_API( void )
  3013. ConvertTime                        (TimeRecord *            inout,
  3014.                                  TimeBase                 newBase)                            THREEWORDINLINE(0x303C, 0x00B5, 0xAAAA);
  3015.  
  3016. EXTERN_API( void )
  3017. ConvertTimeScale                (TimeRecord *            inout,
  3018.                                  TimeScale                 newScale)                            THREEWORDINLINE(0x303C, 0x00B7, 0xAAAA);
  3019.  
  3020. EXTERN_API( void )
  3021. AddTime                            (TimeRecord *            dst,
  3022.                                  const TimeRecord *        src)                                THREEWORDINLINE(0x303C, 0x010C, 0xAAAA);
  3023.  
  3024. EXTERN_API( void )
  3025. SubtractTime                    (TimeRecord *            dst,
  3026.                                  const TimeRecord *        src)                                THREEWORDINLINE(0x303C, 0x010D, 0xAAAA);
  3027.  
  3028. EXTERN_API( long )
  3029. GetTimeBaseStatus                (TimeBase                 tb,
  3030.                                  TimeRecord *            unpinnedTime)                        THREEWORDINLINE(0x303C, 0x010B, 0xAAAA);
  3031.  
  3032. EXTERN_API( void )
  3033. SetTimeBaseZero                    (TimeBase                 tb,
  3034.                                  TimeRecord *            zero)                                THREEWORDINLINE(0x303C, 0x0128, 0xAAAA);
  3035.  
  3036. EXTERN_API( Fixed )
  3037. GetTimeBaseEffectiveRate        (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x0124, 0xAAAA);
  3038.  
  3039.  
  3040. /****************************************
  3041. *                                        *
  3042. *          C  A  L  L  B  A  C  K             *
  3043. *                                        *
  3044. ****************************************/
  3045. EXTERN_API( QTCallBack )
  3046. NewCallBack                        (TimeBase                 tb,
  3047.                                  short                     cbType)                                THREEWORDINLINE(0x303C, 0x00EB, 0xAAAA);
  3048.  
  3049. EXTERN_API( void )
  3050. DisposeCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00EC, 0xAAAA);
  3051.  
  3052. EXTERN_API( short )
  3053. GetCallBackType                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00ED, 0xAAAA);
  3054.  
  3055. EXTERN_API( TimeBase )
  3056. GetCallBackTimeBase                (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00EE, 0xAAAA);
  3057.  
  3058. EXTERN_API( OSErr )
  3059. CallMeWhen                        (QTCallBack             cb,
  3060.                                  QTCallBackUPP             callBackProc,
  3061.                                  long                     refCon,
  3062.                                  long                     param1,
  3063.                                  long                     param2,
  3064.                                  long                     param3)                                THREEWORDINLINE(0x303C, 0x00B8, 0xAAAA);
  3065.  
  3066. EXTERN_API( void )
  3067. CancelCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x00B9, 0xAAAA);
  3068.  
  3069.  
  3070. /****************************************
  3071. *                                        *
  3072. *          C L O C K   C A L L B A C K      *
  3073. *                S U P P O R T              *
  3074. *                                        *
  3075. ****************************************/
  3076. EXTERN_API( OSErr )
  3077. AddCallBackToTimeBase            (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x0129, 0xAAAA);
  3078.  
  3079. EXTERN_API( OSErr )
  3080. RemoveCallBackFromTimeBase        (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012A, 0xAAAA);
  3081.  
  3082. EXTERN_API( QTCallBack )
  3083. GetFirstCallBack                (TimeBase                 tb)                                    THREEWORDINLINE(0x303C, 0x012B, 0xAAAA);
  3084.  
  3085. EXTERN_API( QTCallBack )
  3086. GetNextCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012C, 0xAAAA);
  3087.  
  3088. EXTERN_API( void )
  3089. ExecuteCallBack                    (QTCallBack             cb)                                    THREEWORDINLINE(0x303C, 0x012D, 0xAAAA);
  3090.  
  3091. /****************************************
  3092. *                                        *
  3093. *          S Y N C    T A S K S              *
  3094. *                S U P P O R T              *
  3095. *                                        *
  3096. ****************************************/
  3097. EXTERN_API( OSErr )
  3098. QueueSyncTask                    (QTSyncTaskPtr             task)                                THREEWORDINLINE(0x303C, 0x0203, 0xAAAA);
  3099.  
  3100. EXTERN_API( OSErr )
  3101. DequeueSyncTask                    (QTSyncTaskPtr             qElem)                                THREEWORDINLINE(0x303C, 0x0204, 0xAAAA);
  3102.  
  3103.  
  3104.  
  3105. /* UPP call backs */
  3106. enum { uppMovieRgnCoverProcInfo = 0x00000FE0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  3107. enum { uppMovieProgressProcInfo = 0x0000FAE0 };                 /* pascal 2_bytes Func(4_bytes, 2_bytes, 2_bytes, 4_bytes, 4_bytes) */
  3108. enum { uppMovieDrawingCompleteProcInfo = 0x000003E0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  3109. enum { uppTrackTransferProcInfo = 0x000003E0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  3110. enum { uppGetMovieProcInfo = 0x00003FE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3111. enum { uppMoviePreviewCallOutProcInfo = 0x000000D0 };             /* pascal 1_byte Func(4_bytes) */
  3112. enum { uppTextMediaProcInfo = 0x00003FE0 };                     /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  3113. enum { uppQTCallBackProcInfo = 0x000003C0 };                     /* pascal no_return_value Func(4_bytes, 4_bytes) */
  3114. enum { uppQTSyncTaskProcInfo = 0x000000C0 };                     /* pascal no_return_value Func(4_bytes) */
  3115. enum { uppMCActionFilterProcInfo = 0x00000FD0 };                 /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */
  3116. enum { uppMCActionFilterWithRefConProcInfo = 0x00003ED0 };         /* pascal 1_byte Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  3117. #define NewMovieRgnCoverProc(userRoutine)                         (MovieRgnCoverUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentArchitecture())
  3118. #define NewMovieProgressProc(userRoutine)                         (MovieProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentArchitecture())
  3119. #define NewMovieDrawingCompleteProc(userRoutine)                 (MovieDrawingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentArchitecture())
  3120. #define NewTrackTransferProc(userRoutine)                         (TrackTransferUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentArchitecture())
  3121. #define NewGetMovieProc(userRoutine)                             (GetMovieUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMovieProcInfo, GetCurrentArchitecture())
  3122. #define NewMoviePreviewCallOutProc(userRoutine)                 (MoviePreviewCallOutUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentArchitecture())
  3123. #define NewTextMediaProc(userRoutine)                             (TextMediaUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentArchitecture())
  3124. #define NewQTCallBackProc(userRoutine)                             (QTCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentArchitecture())
  3125. #define NewQTSyncTaskProc(userRoutine)                             (QTSyncTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSyncTaskProcInfo, GetCurrentArchitecture())
  3126. #define NewMCActionFilterProc(userRoutine)                         (MCActionFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentArchitecture())
  3127. #define NewMCActionFilterWithRefConProc(userRoutine)             (MCActionFilterWithRefConUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentArchitecture())
  3128. #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon)  CALL_THREE_PARAMETER_UPP((userRoutine), uppMovieRgnCoverProcInfo, (theMovie), (changedRgn), (refcon))
  3129. #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppMovieProgressProcInfo, (theMovie), (message), (whatOperation), (percentDone), (refcon))
  3130. #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon)  CALL_TWO_PARAMETER_UPP((userRoutine), uppMovieDrawingCompleteProcInfo, (theMovie), (refCon))
  3131. #define CallTrackTransferProc(userRoutine, t, refCon)             CALL_TWO_PARAMETER_UPP((userRoutine), uppTrackTransferProcInfo, (t), (refCon))
  3132. #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppGetMovieProcInfo, (offset), (size), (dataPtr), (refCon))
  3133. #define CallMoviePreviewCallOutProc(userRoutine, refcon)         CALL_ONE_PARAMETER_UPP((userRoutine), uppMoviePreviewCallOutProcInfo, (refcon))
  3134. #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppTextMediaProcInfo, (theText), (theMovie), (displayFlag), (refcon))
  3135. #define CallQTCallBackProc(userRoutine, cb, refCon)             CALL_TWO_PARAMETER_UPP((userRoutine), uppQTCallBackProcInfo, (cb), (refCon))
  3136. #define CallQTSyncTaskProc(userRoutine, task)                     CALL_ONE_PARAMETER_UPP((userRoutine), uppQTSyncTaskProcInfo, (task))
  3137. #define CallMCActionFilterProc(userRoutine, mc, action, params)  CALL_THREE_PARAMETER_UPP((userRoutine), uppMCActionFilterProcInfo, (mc), (action), (params))
  3138. #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppMCActionFilterWithRefConProcInfo, (mc), (action), (params), (refCon))
  3139.  
  3140. /* selectors for component calls */
  3141. enum {
  3142.     kVideoMediaResetStatisticsSelect                = 0x0105,
  3143.     kVideoMediaGetStatisticsSelect                    = 0x0106,
  3144.     kTextMediaSetTextProcSelect                        = 0x0101,
  3145.     kTextMediaAddTextSampleSelect                    = 0x0102,
  3146.     kTextMediaAddTESampleSelect                        = 0x0103,
  3147.     kTextMediaAddHiliteSampleSelect                    = 0x0104,
  3148.     kTextMediaFindNextTextSelect                    = 0x0105,
  3149.     kTextMediaHiliteTextSampleSelect                = 0x0106,
  3150.     kTextMediaSetTextSampleDataSelect                = 0x0107,
  3151.     kSpriteMediaSetPropertySelect                    = 0x0101,
  3152.     kSpriteMediaGetPropertySelect                    = 0x0102,
  3153.     kSpriteMediaHitTestSpritesSelect                = 0x0103,
  3154.     kSpriteMediaCountSpritesSelect                    = 0x0104,
  3155.     kSpriteMediaCountImagesSelect                    = 0x0105,
  3156.     kSpriteMediaGetIndImageDescriptionSelect        = 0x0106,
  3157.     kSpriteMediaGetDisplayedSampleNumberSelect        = 0x0107,
  3158.     kMedia3DGetNamedObjectListSelect                = 0x0101,
  3159.     kMedia3DGetRendererListSelect                    = 0x0102,
  3160.     kMCSetMovieSelect                                = 0x0002,
  3161.     kMCGetIndMovieSelect                            = 0x0005,
  3162.     kMCRemoveAllMoviesSelect                        = 0x0006,
  3163.     kMCRemoveAMovieSelect                            = 0x0003,
  3164.     kMCRemoveMovieSelect                            = 0x0006,
  3165.     kMCIsPlayerEventSelect                            = 0x0007,
  3166.     kMCSetActionFilterSelect                        = 0x0008,
  3167.     kMCDoActionSelect                                = 0x0009,
  3168.     kMCSetControllerAttachedSelect                    = 0x000A,
  3169.     kMCIsControllerAttachedSelect                    = 0x000B,
  3170.     kMCSetControllerPortSelect                        = 0x000C,
  3171.     kMCGetControllerPortSelect                        = 0x000D,
  3172.     kMCSetVisibleSelect                                = 0x000E,
  3173.     kMCGetVisibleSelect                                = 0x000F,
  3174.     kMCGetControllerBoundsRectSelect                = 0x0010,
  3175.     kMCSetControllerBoundsRectSelect                = 0x0011,
  3176.     kMCGetControllerBoundsRgnSelect                    = 0x0012,
  3177.     kMCGetWindowRgnSelect                            = 0x0013,
  3178.     kMCMovieChangedSelect                            = 0x0014,
  3179.     kMCSetDurationSelect                            = 0x0015,
  3180.     kMCGetCurrentTimeSelect                            = 0x0016,
  3181.     kMCNewAttachedControllerSelect                    = 0x0017,
  3182.     kMCDrawSelect                                    = 0x0018,
  3183.     kMCActivateSelect                                = 0x0019,
  3184.     kMCIdleSelect                                    = 0x001A,
  3185.     kMCKeySelect                                    = 0x001B,
  3186.     kMCClickSelect                                    = 0x001C,
  3187.     kMCEnableEditingSelect                            = 0x001D,
  3188.     kMCIsEditingEnabledSelect                        = 0x001E,
  3189.     kMCCopySelect                                    = 0x001F,
  3190.     kMCCutSelect                                    = 0x0020,
  3191.     kMCPasteSelect                                    = 0x0021,
  3192.     kMCClearSelect                                    = 0x0022,
  3193.     kMCUndoSelect                                    = 0x0023,
  3194.     kMCPositionControllerSelect                        = 0x0024,
  3195.     kMCGetControllerInfoSelect                        = 0x0025,
  3196.     kMCSetClipSelect                                = 0x0028,
  3197.     kMCGetClipSelect                                = 0x0029,
  3198.     kMCDrawBadgeSelect                                = 0x002A,
  3199.     kMCSetUpEditMenuSelect                            = 0x002B,
  3200.     kMCGetMenuStringSelect                            = 0x002C,
  3201.     kMCSetActionFilterWithRefConSelect                = 0x002D,
  3202.     kMCPtInControllerSelect                            = 0x002E,
  3203.     kMCInvalidateSelect                                = 0x002F
  3204. };
  3205.  
  3206.  
  3207.  
  3208. #if PRAGMA_STRUCT_ALIGN
  3209.     #pragma options align=reset
  3210. #elif PRAGMA_STRUCT_PACKPUSH
  3211.     #pragma pack(pop)
  3212. #elif PRAGMA_STRUCT_PACK
  3213.     #pragma pack()
  3214. #endif
  3215.  
  3216. #ifdef PRAGMA_IMPORT_OFF
  3217. #pragma import off
  3218. #elif PRAGMA_IMPORT
  3219. #pragma import reset
  3220. #endif
  3221.  
  3222. #ifdef __cplusplus
  3223. }
  3224. #endif
  3225.  
  3226. #endif /* __MOVIES__ */
  3227.  
  3228.